Line data Source code
1 : /* Generated by Cython 3.0.11 */
2 :
3 : #ifndef PY_SSIZE_T_CLEAN
4 : #define PY_SSIZE_T_CLEAN
5 : #endif /* PY_SSIZE_T_CLEAN */
6 : #if defined(CYTHON_LIMITED_API) && 0
7 : #ifndef Py_LIMITED_API
8 : #if CYTHON_LIMITED_API+0 > 0x03030000
9 : #define Py_LIMITED_API CYTHON_LIMITED_API
10 : #else
11 : #define Py_LIMITED_API 0x03030000
12 : #endif
13 : #endif
14 : #endif
15 :
16 : #include "Python.h"
17 : #ifndef Py_PYTHON_H
18 : #error Python headers needed to compile C extensions, please install development version of Python.
19 : #elif PY_VERSION_HEX < 0x02070000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000)
20 : #error Cython requires Python 2.7+ or Python 3.3+.
21 : #else
22 : #if defined(CYTHON_LIMITED_API) && CYTHON_LIMITED_API
23 : #define __PYX_EXTRA_ABI_MODULE_NAME "limited"
24 : #else
25 : #define __PYX_EXTRA_ABI_MODULE_NAME ""
26 : #endif
27 : #define CYTHON_ABI "3_0_11" __PYX_EXTRA_ABI_MODULE_NAME
28 : #define __PYX_ABI_MODULE_NAME "_cython_" CYTHON_ABI
29 : #define __PYX_TYPE_MODULE_PREFIX __PYX_ABI_MODULE_NAME "."
30 : #define CYTHON_HEX_VERSION 0x03000BF0
31 : #define CYTHON_FUTURE_DIVISION 1
32 : #include <stddef.h>
33 : #ifndef offsetof
34 : #define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
35 : #endif
36 : #if !defined(_WIN32) && !defined(WIN32) && !defined(MS_WINDOWS)
37 : #ifndef __stdcall
38 : #define __stdcall
39 : #endif
40 : #ifndef __cdecl
41 : #define __cdecl
42 : #endif
43 : #ifndef __fastcall
44 : #define __fastcall
45 : #endif
46 : #endif
47 : #ifndef DL_IMPORT
48 : #define DL_IMPORT(t) t
49 : #endif
50 : #ifndef DL_EXPORT
51 : #define DL_EXPORT(t) t
52 : #endif
53 : #define __PYX_COMMA ,
54 : #ifndef HAVE_LONG_LONG
55 : #define HAVE_LONG_LONG
56 : #endif
57 : #ifndef PY_LONG_LONG
58 : #define PY_LONG_LONG LONG_LONG
59 : #endif
60 : #ifndef Py_HUGE_VAL
61 : #define Py_HUGE_VAL HUGE_VAL
62 : #endif
63 : #define __PYX_LIMITED_VERSION_HEX PY_VERSION_HEX
64 : #if defined(GRAALVM_PYTHON)
65 : /* For very preliminary testing purposes. Most variables are set the same as PyPy.
66 : The existence of this section does not imply that anything works or is even tested */
67 : #define CYTHON_COMPILING_IN_PYPY 0
68 : #define CYTHON_COMPILING_IN_CPYTHON 0
69 : #define CYTHON_COMPILING_IN_LIMITED_API 0
70 : #define CYTHON_COMPILING_IN_GRAAL 1
71 : #define CYTHON_COMPILING_IN_NOGIL 0
72 : #undef CYTHON_USE_TYPE_SLOTS
73 : #define CYTHON_USE_TYPE_SLOTS 0
74 : #undef CYTHON_USE_TYPE_SPECS
75 : #define CYTHON_USE_TYPE_SPECS 0
76 : #undef CYTHON_USE_PYTYPE_LOOKUP
77 : #define CYTHON_USE_PYTYPE_LOOKUP 0
78 : #if PY_VERSION_HEX < 0x03050000
79 : #undef CYTHON_USE_ASYNC_SLOTS
80 : #define CYTHON_USE_ASYNC_SLOTS 0
81 : #elif !defined(CYTHON_USE_ASYNC_SLOTS)
82 : #define CYTHON_USE_ASYNC_SLOTS 1
83 : #endif
84 : #undef CYTHON_USE_PYLIST_INTERNALS
85 : #define CYTHON_USE_PYLIST_INTERNALS 0
86 : #undef CYTHON_USE_UNICODE_INTERNALS
87 : #define CYTHON_USE_UNICODE_INTERNALS 0
88 : #undef CYTHON_USE_UNICODE_WRITER
89 : #define CYTHON_USE_UNICODE_WRITER 0
90 : #undef CYTHON_USE_PYLONG_INTERNALS
91 : #define CYTHON_USE_PYLONG_INTERNALS 0
92 : #undef CYTHON_AVOID_BORROWED_REFS
93 : #define CYTHON_AVOID_BORROWED_REFS 1
94 : #undef CYTHON_ASSUME_SAFE_MACROS
95 : #define CYTHON_ASSUME_SAFE_MACROS 0
96 : #undef CYTHON_UNPACK_METHODS
97 : #define CYTHON_UNPACK_METHODS 0
98 : #undef CYTHON_FAST_THREAD_STATE
99 : #define CYTHON_FAST_THREAD_STATE 0
100 : #undef CYTHON_FAST_GIL
101 : #define CYTHON_FAST_GIL 0
102 : #undef CYTHON_METH_FASTCALL
103 : #define CYTHON_METH_FASTCALL 0
104 : #undef CYTHON_FAST_PYCALL
105 : #define CYTHON_FAST_PYCALL 0
106 : #ifndef CYTHON_PEP487_INIT_SUBCLASS
107 : #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
108 : #endif
109 : #undef CYTHON_PEP489_MULTI_PHASE_INIT
110 : #define CYTHON_PEP489_MULTI_PHASE_INIT 1
111 : #undef CYTHON_USE_MODULE_STATE
112 : #define CYTHON_USE_MODULE_STATE 0
113 : #undef CYTHON_USE_TP_FINALIZE
114 : #define CYTHON_USE_TP_FINALIZE 0
115 : #undef CYTHON_USE_DICT_VERSIONS
116 : #define CYTHON_USE_DICT_VERSIONS 0
117 : #undef CYTHON_USE_EXC_INFO_STACK
118 : #define CYTHON_USE_EXC_INFO_STACK 0
119 : #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
120 : #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
121 : #endif
122 : #undef CYTHON_USE_FREELISTS
123 : #define CYTHON_USE_FREELISTS 0
124 : #elif defined(PYPY_VERSION)
125 : #define CYTHON_COMPILING_IN_PYPY 1
126 : #define CYTHON_COMPILING_IN_CPYTHON 0
127 : #define CYTHON_COMPILING_IN_LIMITED_API 0
128 : #define CYTHON_COMPILING_IN_GRAAL 0
129 : #define CYTHON_COMPILING_IN_NOGIL 0
130 : #undef CYTHON_USE_TYPE_SLOTS
131 : #define CYTHON_USE_TYPE_SLOTS 0
132 : #ifndef CYTHON_USE_TYPE_SPECS
133 : #define CYTHON_USE_TYPE_SPECS 0
134 : #endif
135 : #undef CYTHON_USE_PYTYPE_LOOKUP
136 : #define CYTHON_USE_PYTYPE_LOOKUP 0
137 : #if PY_VERSION_HEX < 0x03050000
138 : #undef CYTHON_USE_ASYNC_SLOTS
139 : #define CYTHON_USE_ASYNC_SLOTS 0
140 : #elif !defined(CYTHON_USE_ASYNC_SLOTS)
141 : #define CYTHON_USE_ASYNC_SLOTS 1
142 : #endif
143 : #undef CYTHON_USE_PYLIST_INTERNALS
144 : #define CYTHON_USE_PYLIST_INTERNALS 0
145 : #undef CYTHON_USE_UNICODE_INTERNALS
146 : #define CYTHON_USE_UNICODE_INTERNALS 0
147 : #undef CYTHON_USE_UNICODE_WRITER
148 : #define CYTHON_USE_UNICODE_WRITER 0
149 : #undef CYTHON_USE_PYLONG_INTERNALS
150 : #define CYTHON_USE_PYLONG_INTERNALS 0
151 : #undef CYTHON_AVOID_BORROWED_REFS
152 : #define CYTHON_AVOID_BORROWED_REFS 1
153 : #undef CYTHON_ASSUME_SAFE_MACROS
154 : #define CYTHON_ASSUME_SAFE_MACROS 0
155 : #undef CYTHON_UNPACK_METHODS
156 : #define CYTHON_UNPACK_METHODS 0
157 : #undef CYTHON_FAST_THREAD_STATE
158 : #define CYTHON_FAST_THREAD_STATE 0
159 : #undef CYTHON_FAST_GIL
160 : #define CYTHON_FAST_GIL 0
161 : #undef CYTHON_METH_FASTCALL
162 : #define CYTHON_METH_FASTCALL 0
163 : #undef CYTHON_FAST_PYCALL
164 : #define CYTHON_FAST_PYCALL 0
165 : #ifndef CYTHON_PEP487_INIT_SUBCLASS
166 : #define CYTHON_PEP487_INIT_SUBCLASS (PY_MAJOR_VERSION >= 3)
167 : #endif
168 : #if PY_VERSION_HEX < 0x03090000
169 : #undef CYTHON_PEP489_MULTI_PHASE_INIT
170 : #define CYTHON_PEP489_MULTI_PHASE_INIT 0
171 : #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
172 : #define CYTHON_PEP489_MULTI_PHASE_INIT 1
173 : #endif
174 : #undef CYTHON_USE_MODULE_STATE
175 : #define CYTHON_USE_MODULE_STATE 0
176 : #undef CYTHON_USE_TP_FINALIZE
177 : #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00)
178 : #undef CYTHON_USE_DICT_VERSIONS
179 : #define CYTHON_USE_DICT_VERSIONS 0
180 : #undef CYTHON_USE_EXC_INFO_STACK
181 : #define CYTHON_USE_EXC_INFO_STACK 0
182 : #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
183 : #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
184 : #endif
185 : #undef CYTHON_USE_FREELISTS
186 : #define CYTHON_USE_FREELISTS 0
187 : #elif defined(CYTHON_LIMITED_API)
188 : #ifdef Py_LIMITED_API
189 : #undef __PYX_LIMITED_VERSION_HEX
190 : #define __PYX_LIMITED_VERSION_HEX Py_LIMITED_API
191 : #endif
192 : #define CYTHON_COMPILING_IN_PYPY 0
193 : #define CYTHON_COMPILING_IN_CPYTHON 0
194 : #define CYTHON_COMPILING_IN_LIMITED_API 1
195 : #define CYTHON_COMPILING_IN_GRAAL 0
196 : #define CYTHON_COMPILING_IN_NOGIL 0
197 : #undef CYTHON_CLINE_IN_TRACEBACK
198 : #define CYTHON_CLINE_IN_TRACEBACK 0
199 : #undef CYTHON_USE_TYPE_SLOTS
200 : #define CYTHON_USE_TYPE_SLOTS 0
201 : #undef CYTHON_USE_TYPE_SPECS
202 : #define CYTHON_USE_TYPE_SPECS 1
203 : #undef CYTHON_USE_PYTYPE_LOOKUP
204 : #define CYTHON_USE_PYTYPE_LOOKUP 0
205 : #undef CYTHON_USE_ASYNC_SLOTS
206 : #define CYTHON_USE_ASYNC_SLOTS 0
207 : #undef CYTHON_USE_PYLIST_INTERNALS
208 : #define CYTHON_USE_PYLIST_INTERNALS 0
209 : #undef CYTHON_USE_UNICODE_INTERNALS
210 : #define CYTHON_USE_UNICODE_INTERNALS 0
211 : #ifndef CYTHON_USE_UNICODE_WRITER
212 : #define CYTHON_USE_UNICODE_WRITER 0
213 : #endif
214 : #undef CYTHON_USE_PYLONG_INTERNALS
215 : #define CYTHON_USE_PYLONG_INTERNALS 0
216 : #ifndef CYTHON_AVOID_BORROWED_REFS
217 : #define CYTHON_AVOID_BORROWED_REFS 0
218 : #endif
219 : #undef CYTHON_ASSUME_SAFE_MACROS
220 : #define CYTHON_ASSUME_SAFE_MACROS 0
221 : #undef CYTHON_UNPACK_METHODS
222 : #define CYTHON_UNPACK_METHODS 0
223 : #undef CYTHON_FAST_THREAD_STATE
224 : #define CYTHON_FAST_THREAD_STATE 0
225 : #undef CYTHON_FAST_GIL
226 : #define CYTHON_FAST_GIL 0
227 : #undef CYTHON_METH_FASTCALL
228 : #define CYTHON_METH_FASTCALL 0
229 : #undef CYTHON_FAST_PYCALL
230 : #define CYTHON_FAST_PYCALL 0
231 : #ifndef CYTHON_PEP487_INIT_SUBCLASS
232 : #define CYTHON_PEP487_INIT_SUBCLASS 1
233 : #endif
234 : #undef CYTHON_PEP489_MULTI_PHASE_INIT
235 : #define CYTHON_PEP489_MULTI_PHASE_INIT 0
236 : #undef CYTHON_USE_MODULE_STATE
237 : #define CYTHON_USE_MODULE_STATE 1
238 : #ifndef CYTHON_USE_TP_FINALIZE
239 : #define CYTHON_USE_TP_FINALIZE 0
240 : #endif
241 : #undef CYTHON_USE_DICT_VERSIONS
242 : #define CYTHON_USE_DICT_VERSIONS 0
243 : #undef CYTHON_USE_EXC_INFO_STACK
244 : #define CYTHON_USE_EXC_INFO_STACK 0
245 : #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
246 : #define CYTHON_UPDATE_DESCRIPTOR_DOC 0
247 : #endif
248 : #undef CYTHON_USE_FREELISTS
249 : #define CYTHON_USE_FREELISTS 0
250 : #elif defined(Py_GIL_DISABLED) || defined(Py_NOGIL)
251 : #define CYTHON_COMPILING_IN_PYPY 0
252 : #define CYTHON_COMPILING_IN_CPYTHON 0
253 : #define CYTHON_COMPILING_IN_LIMITED_API 0
254 : #define CYTHON_COMPILING_IN_GRAAL 0
255 : #define CYTHON_COMPILING_IN_NOGIL 1
256 : #ifndef CYTHON_USE_TYPE_SLOTS
257 : #define CYTHON_USE_TYPE_SLOTS 1
258 : #endif
259 : #ifndef CYTHON_USE_TYPE_SPECS
260 : #define CYTHON_USE_TYPE_SPECS 0
261 : #endif
262 : #undef CYTHON_USE_PYTYPE_LOOKUP
263 : #define CYTHON_USE_PYTYPE_LOOKUP 0
264 : #ifndef CYTHON_USE_ASYNC_SLOTS
265 : #define CYTHON_USE_ASYNC_SLOTS 1
266 : #endif
267 : #ifndef CYTHON_USE_PYLONG_INTERNALS
268 : #define CYTHON_USE_PYLONG_INTERNALS 0
269 : #endif
270 : #undef CYTHON_USE_PYLIST_INTERNALS
271 : #define CYTHON_USE_PYLIST_INTERNALS 0
272 : #ifndef CYTHON_USE_UNICODE_INTERNALS
273 : #define CYTHON_USE_UNICODE_INTERNALS 1
274 : #endif
275 : #undef CYTHON_USE_UNICODE_WRITER
276 : #define CYTHON_USE_UNICODE_WRITER 0
277 : #ifndef CYTHON_AVOID_BORROWED_REFS
278 : #define CYTHON_AVOID_BORROWED_REFS 0
279 : #endif
280 : #ifndef CYTHON_ASSUME_SAFE_MACROS
281 : #define CYTHON_ASSUME_SAFE_MACROS 1
282 : #endif
283 : #ifndef CYTHON_UNPACK_METHODS
284 : #define CYTHON_UNPACK_METHODS 1
285 : #endif
286 : #undef CYTHON_FAST_THREAD_STATE
287 : #define CYTHON_FAST_THREAD_STATE 0
288 : #undef CYTHON_FAST_GIL
289 : #define CYTHON_FAST_GIL 0
290 : #ifndef CYTHON_METH_FASTCALL
291 : #define CYTHON_METH_FASTCALL 1
292 : #endif
293 : #undef CYTHON_FAST_PYCALL
294 : #define CYTHON_FAST_PYCALL 0
295 : #ifndef CYTHON_PEP487_INIT_SUBCLASS
296 : #define CYTHON_PEP487_INIT_SUBCLASS 1
297 : #endif
298 : #ifndef CYTHON_PEP489_MULTI_PHASE_INIT
299 : #define CYTHON_PEP489_MULTI_PHASE_INIT 1
300 : #endif
301 : #ifndef CYTHON_USE_MODULE_STATE
302 : #define CYTHON_USE_MODULE_STATE 0
303 : #endif
304 : #ifndef CYTHON_USE_TP_FINALIZE
305 : #define CYTHON_USE_TP_FINALIZE 1
306 : #endif
307 : #undef CYTHON_USE_DICT_VERSIONS
308 : #define CYTHON_USE_DICT_VERSIONS 0
309 : #undef CYTHON_USE_EXC_INFO_STACK
310 : #define CYTHON_USE_EXC_INFO_STACK 0
311 : #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
312 : #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
313 : #endif
314 : #ifndef CYTHON_USE_FREELISTS
315 : #define CYTHON_USE_FREELISTS 0
316 : #endif
317 : #else
318 : #define CYTHON_COMPILING_IN_PYPY 0
319 : #define CYTHON_COMPILING_IN_CPYTHON 1
320 : #define CYTHON_COMPILING_IN_LIMITED_API 0
321 : #define CYTHON_COMPILING_IN_GRAAL 0
322 : #define CYTHON_COMPILING_IN_NOGIL 0
323 : #ifndef CYTHON_USE_TYPE_SLOTS
324 : #define CYTHON_USE_TYPE_SLOTS 1
325 : #endif
326 : #ifndef CYTHON_USE_TYPE_SPECS
327 : #define CYTHON_USE_TYPE_SPECS 0
328 : #endif
329 : #ifndef CYTHON_USE_PYTYPE_LOOKUP
330 : #define CYTHON_USE_PYTYPE_LOOKUP 1
331 : #endif
332 : #if PY_MAJOR_VERSION < 3
333 : #undef CYTHON_USE_ASYNC_SLOTS
334 : #define CYTHON_USE_ASYNC_SLOTS 0
335 : #elif !defined(CYTHON_USE_ASYNC_SLOTS)
336 : #define CYTHON_USE_ASYNC_SLOTS 1
337 : #endif
338 : #ifndef CYTHON_USE_PYLONG_INTERNALS
339 : #define CYTHON_USE_PYLONG_INTERNALS 1
340 : #endif
341 : #ifndef CYTHON_USE_PYLIST_INTERNALS
342 : #define CYTHON_USE_PYLIST_INTERNALS 1
343 : #endif
344 : #ifndef CYTHON_USE_UNICODE_INTERNALS
345 : #define CYTHON_USE_UNICODE_INTERNALS 1
346 : #endif
347 : #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2
348 : #undef CYTHON_USE_UNICODE_WRITER
349 : #define CYTHON_USE_UNICODE_WRITER 0
350 : #elif !defined(CYTHON_USE_UNICODE_WRITER)
351 : #define CYTHON_USE_UNICODE_WRITER 1
352 : #endif
353 : #ifndef CYTHON_AVOID_BORROWED_REFS
354 : #define CYTHON_AVOID_BORROWED_REFS 0
355 : #endif
356 : #ifndef CYTHON_ASSUME_SAFE_MACROS
357 : #define CYTHON_ASSUME_SAFE_MACROS 1
358 : #endif
359 : #ifndef CYTHON_UNPACK_METHODS
360 : #define CYTHON_UNPACK_METHODS 1
361 : #endif
362 : #ifndef CYTHON_FAST_THREAD_STATE
363 : #define CYTHON_FAST_THREAD_STATE 1
364 : #endif
365 : #ifndef CYTHON_FAST_GIL
366 : #define CYTHON_FAST_GIL (PY_MAJOR_VERSION < 3 || PY_VERSION_HEX >= 0x03060000 && PY_VERSION_HEX < 0x030C00A6)
367 : #endif
368 : #ifndef CYTHON_METH_FASTCALL
369 : #define CYTHON_METH_FASTCALL (PY_VERSION_HEX >= 0x030700A1)
370 : #endif
371 : #ifndef CYTHON_FAST_PYCALL
372 : #define CYTHON_FAST_PYCALL 1
373 : #endif
374 : #ifndef CYTHON_PEP487_INIT_SUBCLASS
375 : #define CYTHON_PEP487_INIT_SUBCLASS 1
376 : #endif
377 : #if PY_VERSION_HEX < 0x03050000
378 : #undef CYTHON_PEP489_MULTI_PHASE_INIT
379 : #define CYTHON_PEP489_MULTI_PHASE_INIT 0
380 : #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT)
381 : #define CYTHON_PEP489_MULTI_PHASE_INIT 1
382 : #endif
383 : #ifndef CYTHON_USE_MODULE_STATE
384 : #define CYTHON_USE_MODULE_STATE 0
385 : #endif
386 : #if PY_VERSION_HEX < 0x030400a1
387 : #undef CYTHON_USE_TP_FINALIZE
388 : #define CYTHON_USE_TP_FINALIZE 0
389 : #elif !defined(CYTHON_USE_TP_FINALIZE)
390 : #define CYTHON_USE_TP_FINALIZE 1
391 : #endif
392 : #if PY_VERSION_HEX < 0x030600B1
393 : #undef CYTHON_USE_DICT_VERSIONS
394 : #define CYTHON_USE_DICT_VERSIONS 0
395 : #elif !defined(CYTHON_USE_DICT_VERSIONS)
396 : #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX < 0x030C00A5)
397 : #endif
398 : #if PY_VERSION_HEX < 0x030700A3
399 : #undef CYTHON_USE_EXC_INFO_STACK
400 : #define CYTHON_USE_EXC_INFO_STACK 0
401 : #elif !defined(CYTHON_USE_EXC_INFO_STACK)
402 : #define CYTHON_USE_EXC_INFO_STACK 1
403 : #endif
404 : #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC
405 : #define CYTHON_UPDATE_DESCRIPTOR_DOC 1
406 : #endif
407 : #ifndef CYTHON_USE_FREELISTS
408 : #define CYTHON_USE_FREELISTS 1
409 : #endif
410 : #endif
411 : #if !defined(CYTHON_FAST_PYCCALL)
412 : #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1)
413 : #endif
414 : #if !defined(CYTHON_VECTORCALL)
415 : #define CYTHON_VECTORCALL (CYTHON_FAST_PYCCALL && PY_VERSION_HEX >= 0x030800B1)
416 : #endif
417 : #define CYTHON_BACKPORT_VECTORCALL (CYTHON_METH_FASTCALL && PY_VERSION_HEX < 0x030800B1)
418 : #if CYTHON_USE_PYLONG_INTERNALS
419 : #if PY_MAJOR_VERSION < 3
420 : #include "longintrepr.h"
421 : #endif
422 : #undef SHIFT
423 : #undef BASE
424 : #undef MASK
425 : #ifdef SIZEOF_VOID_P
426 : enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) };
427 : #endif
428 : #endif
429 : #ifndef __has_attribute
430 : #define __has_attribute(x) 0
431 : #endif
432 : #ifndef __has_cpp_attribute
433 : #define __has_cpp_attribute(x) 0
434 : #endif
435 : #ifndef CYTHON_RESTRICT
436 : #if defined(__GNUC__)
437 : #define CYTHON_RESTRICT __restrict__
438 : #elif defined(_MSC_VER) && _MSC_VER >= 1400
439 : #define CYTHON_RESTRICT __restrict
440 : #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
441 : #define CYTHON_RESTRICT restrict
442 : #else
443 : #define CYTHON_RESTRICT
444 : #endif
445 : #endif
446 : #ifndef CYTHON_UNUSED
447 : #if defined(__cplusplus)
448 : /* for clang __has_cpp_attribute(maybe_unused) is true even before C++17
449 : * but leads to warnings with -pedantic, since it is a C++17 feature */
450 : #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
451 : #if __has_cpp_attribute(maybe_unused)
452 : #define CYTHON_UNUSED [[maybe_unused]]
453 : #endif
454 : #endif
455 : #endif
456 : #endif
457 : #ifndef CYTHON_UNUSED
458 : # if defined(__GNUC__)
459 : # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
460 : # define CYTHON_UNUSED __attribute__ ((__unused__))
461 : # else
462 : # define CYTHON_UNUSED
463 : # endif
464 : # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
465 : # define CYTHON_UNUSED __attribute__ ((__unused__))
466 : # else
467 : # define CYTHON_UNUSED
468 : # endif
469 : #endif
470 : #ifndef CYTHON_UNUSED_VAR
471 : # if defined(__cplusplus)
472 : template<class T> void CYTHON_UNUSED_VAR( const T& ) { }
473 : # else
474 : # define CYTHON_UNUSED_VAR(x) (void)(x)
475 : # endif
476 : #endif
477 : #ifndef CYTHON_MAYBE_UNUSED_VAR
478 : #define CYTHON_MAYBE_UNUSED_VAR(x) CYTHON_UNUSED_VAR(x)
479 : #endif
480 : #ifndef CYTHON_NCP_UNUSED
481 : # if CYTHON_COMPILING_IN_CPYTHON
482 : # define CYTHON_NCP_UNUSED
483 : # else
484 : # define CYTHON_NCP_UNUSED CYTHON_UNUSED
485 : # endif
486 : #endif
487 : #ifndef CYTHON_USE_CPP_STD_MOVE
488 : #if defined(__cplusplus) && (\
489 : __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600))
490 : #define CYTHON_USE_CPP_STD_MOVE 1
491 : #else
492 : #define CYTHON_USE_CPP_STD_MOVE 0
493 : #endif
494 : #endif
495 : #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None)
496 : #ifdef _MSC_VER
497 : #ifndef _MSC_STDINT_H_
498 : #if _MSC_VER < 1300
499 : typedef unsigned char uint8_t;
500 : typedef unsigned short uint16_t;
501 : typedef unsigned int uint32_t;
502 : #else
503 : typedef unsigned __int8 uint8_t;
504 : typedef unsigned __int16 uint16_t;
505 : typedef unsigned __int32 uint32_t;
506 : #endif
507 : #endif
508 : #if _MSC_VER < 1300
509 : #ifdef _WIN64
510 : typedef unsigned long long __pyx_uintptr_t;
511 : #else
512 : typedef unsigned int __pyx_uintptr_t;
513 : #endif
514 : #else
515 : #ifdef _WIN64
516 : typedef unsigned __int64 __pyx_uintptr_t;
517 : #else
518 : typedef unsigned __int32 __pyx_uintptr_t;
519 : #endif
520 : #endif
521 : #else
522 : #include <stdint.h>
523 : typedef uintptr_t __pyx_uintptr_t;
524 : #endif
525 : #ifndef CYTHON_FALLTHROUGH
526 : #if defined(__cplusplus)
527 : /* for clang __has_cpp_attribute(fallthrough) is true even before C++17
528 : * but leads to warnings with -pedantic, since it is a C++17 feature */
529 : #if ((defined(_MSVC_LANG) && _MSVC_LANG >= 201703L) || __cplusplus >= 201703L)
530 : #if __has_cpp_attribute(fallthrough)
531 : #define CYTHON_FALLTHROUGH [[fallthrough]]
532 : #endif
533 : #endif
534 : #ifndef CYTHON_FALLTHROUGH
535 : #if __has_cpp_attribute(clang::fallthrough)
536 : #define CYTHON_FALLTHROUGH [[clang::fallthrough]]
537 : #elif __has_cpp_attribute(gnu::fallthrough)
538 : #define CYTHON_FALLTHROUGH [[gnu::fallthrough]]
539 : #endif
540 : #endif
541 : #endif
542 : #ifndef CYTHON_FALLTHROUGH
543 : #if __has_attribute(fallthrough)
544 : #define CYTHON_FALLTHROUGH __attribute__((fallthrough))
545 : #else
546 : #define CYTHON_FALLTHROUGH
547 : #endif
548 : #endif
549 : #if defined(__clang__) && defined(__apple_build_version__)
550 : #if __apple_build_version__ < 7000000
551 : #undef CYTHON_FALLTHROUGH
552 : #define CYTHON_FALLTHROUGH
553 : #endif
554 : #endif
555 : #endif
556 : #ifdef __cplusplus
557 : template <typename T>
558 : struct __PYX_IS_UNSIGNED_IMPL {static const bool value = T(0) < T(-1);};
559 : #define __PYX_IS_UNSIGNED(type) (__PYX_IS_UNSIGNED_IMPL<type>::value)
560 : #else
561 : #define __PYX_IS_UNSIGNED(type) (((type)-1) > 0)
562 : #endif
563 : #if CYTHON_COMPILING_IN_PYPY == 1
564 : #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x030A0000)
565 : #else
566 : #define __PYX_NEED_TP_PRINT_SLOT (PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000)
567 : #endif
568 : #define __PYX_REINTERPRET_FUNCION(func_pointer, other_pointer) ((func_pointer)(void(*)(void))(other_pointer))
569 :
570 : #ifndef CYTHON_INLINE
571 : #if defined(__clang__)
572 : #define CYTHON_INLINE __inline__ __attribute__ ((__unused__))
573 : #elif defined(__GNUC__)
574 : #define CYTHON_INLINE __inline__
575 : #elif defined(_MSC_VER)
576 : #define CYTHON_INLINE __inline
577 : #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
578 : #define CYTHON_INLINE inline
579 : #else
580 : #define CYTHON_INLINE
581 : #endif
582 : #endif
583 :
584 : #define __PYX_BUILD_PY_SSIZE_T "n"
585 : #define CYTHON_FORMAT_SSIZE_T "z"
586 : #if PY_MAJOR_VERSION < 3
587 : #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
588 : #define __Pyx_DefaultClassType PyClass_Type
589 : #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
590 : PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
591 : #else
592 : #define __Pyx_BUILTIN_MODULE_NAME "builtins"
593 : #define __Pyx_DefaultClassType PyType_Type
594 : #if CYTHON_COMPILING_IN_LIMITED_API
595 : static CYTHON_INLINE PyObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
596 : PyObject *code, PyObject *c, PyObject* n, PyObject *v,
597 : PyObject *fv, PyObject *cell, PyObject* fn,
598 : PyObject *name, int fline, PyObject *lnos) {
599 : PyObject *exception_table = NULL;
600 : PyObject *types_module=NULL, *code_type=NULL, *result=NULL;
601 : #if __PYX_LIMITED_VERSION_HEX < 0x030B0000
602 : PyObject *version_info;
603 : PyObject *py_minor_version = NULL;
604 : #endif
605 : long minor_version = 0;
606 : PyObject *type, *value, *traceback;
607 : PyErr_Fetch(&type, &value, &traceback);
608 : #if __PYX_LIMITED_VERSION_HEX >= 0x030B0000
609 : minor_version = 11;
610 : #else
611 : if (!(version_info = PySys_GetObject("version_info"))) goto end;
612 : if (!(py_minor_version = PySequence_GetItem(version_info, 1))) goto end;
613 : minor_version = PyLong_AsLong(py_minor_version);
614 : Py_DECREF(py_minor_version);
615 : if (minor_version == -1 && PyErr_Occurred()) goto end;
616 : #endif
617 : if (!(types_module = PyImport_ImportModule("types"))) goto end;
618 : if (!(code_type = PyObject_GetAttrString(types_module, "CodeType"))) goto end;
619 : if (minor_version <= 7) {
620 : (void)p;
621 : result = PyObject_CallFunction(code_type, "iiiiiOOOOOOiOO", a, k, l, s, f, code,
622 : c, n, v, fn, name, fline, lnos, fv, cell);
623 : } else if (minor_version <= 10) {
624 : result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOiOO", a,p, k, l, s, f, code,
625 : c, n, v, fn, name, fline, lnos, fv, cell);
626 : } else {
627 : if (!(exception_table = PyBytes_FromStringAndSize(NULL, 0))) goto end;
628 : result = PyObject_CallFunction(code_type, "iiiiiiOOOOOOOiOO", a,p, k, l, s, f, code,
629 : c, n, v, fn, name, name, fline, lnos, exception_table, fv, cell);
630 : }
631 : end:
632 : Py_XDECREF(code_type);
633 : Py_XDECREF(exception_table);
634 : Py_XDECREF(types_module);
635 : if (type) {
636 : PyErr_Restore(type, value, traceback);
637 : }
638 : return result;
639 : }
640 : #ifndef CO_OPTIMIZED
641 : #define CO_OPTIMIZED 0x0001
642 : #endif
643 : #ifndef CO_NEWLOCALS
644 : #define CO_NEWLOCALS 0x0002
645 : #endif
646 : #ifndef CO_VARARGS
647 : #define CO_VARARGS 0x0004
648 : #endif
649 : #ifndef CO_VARKEYWORDS
650 : #define CO_VARKEYWORDS 0x0008
651 : #endif
652 : #ifndef CO_ASYNC_GENERATOR
653 : #define CO_ASYNC_GENERATOR 0x0200
654 : #endif
655 : #ifndef CO_GENERATOR
656 : #define CO_GENERATOR 0x0020
657 : #endif
658 : #ifndef CO_COROUTINE
659 : #define CO_COROUTINE 0x0080
660 : #endif
661 : #elif PY_VERSION_HEX >= 0x030B0000
662 3 : static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int p, int k, int l, int s, int f,
663 : PyObject *code, PyObject *c, PyObject* n, PyObject *v,
664 : PyObject *fv, PyObject *cell, PyObject* fn,
665 : PyObject *name, int fline, PyObject *lnos) {
666 3 : PyCodeObject *result;
667 3 : PyObject *empty_bytes = PyBytes_FromStringAndSize("", 0);
668 3 : if (!empty_bytes) return NULL;
669 3 : result =
670 : #if PY_VERSION_HEX >= 0x030C0000
671 3 : PyUnstable_Code_NewWithPosOnlyArgs
672 : #else
673 : PyCode_NewWithPosOnlyArgs
674 : #endif
675 : (a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, name, fline, lnos, empty_bytes);
676 3 : Py_DECREF(empty_bytes);
677 : return result;
678 : }
679 : #elif PY_VERSION_HEX >= 0x030800B2 && !CYTHON_COMPILING_IN_PYPY
680 : #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
681 : PyCode_NewWithPosOnlyArgs(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
682 : #else
683 : #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
684 : PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
685 : #endif
686 : #endif
687 : #if PY_VERSION_HEX >= 0x030900A4 || defined(Py_IS_TYPE)
688 : #define __Pyx_IS_TYPE(ob, type) Py_IS_TYPE(ob, type)
689 : #else
690 : #define __Pyx_IS_TYPE(ob, type) (((const PyObject*)ob)->ob_type == (type))
691 : #endif
692 : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_Is)
693 : #define __Pyx_Py_Is(x, y) Py_Is(x, y)
694 : #else
695 : #define __Pyx_Py_Is(x, y) ((x) == (y))
696 : #endif
697 : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsNone)
698 : #define __Pyx_Py_IsNone(ob) Py_IsNone(ob)
699 : #else
700 : #define __Pyx_Py_IsNone(ob) __Pyx_Py_Is((ob), Py_None)
701 : #endif
702 : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsTrue)
703 : #define __Pyx_Py_IsTrue(ob) Py_IsTrue(ob)
704 : #else
705 : #define __Pyx_Py_IsTrue(ob) __Pyx_Py_Is((ob), Py_True)
706 : #endif
707 : #if PY_VERSION_HEX >= 0x030A00B1 || defined(Py_IsFalse)
708 : #define __Pyx_Py_IsFalse(ob) Py_IsFalse(ob)
709 : #else
710 : #define __Pyx_Py_IsFalse(ob) __Pyx_Py_Is((ob), Py_False)
711 : #endif
712 : #define __Pyx_NoneAsNull(obj) (__Pyx_Py_IsNone(obj) ? NULL : (obj))
713 : #if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY
714 : #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o)
715 : #else
716 : #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o)
717 : #endif
718 : #ifndef CO_COROUTINE
719 : #define CO_COROUTINE 0x80
720 : #endif
721 : #ifndef CO_ASYNC_GENERATOR
722 : #define CO_ASYNC_GENERATOR 0x200
723 : #endif
724 : #ifndef Py_TPFLAGS_CHECKTYPES
725 : #define Py_TPFLAGS_CHECKTYPES 0
726 : #endif
727 : #ifndef Py_TPFLAGS_HAVE_INDEX
728 : #define Py_TPFLAGS_HAVE_INDEX 0
729 : #endif
730 : #ifndef Py_TPFLAGS_HAVE_NEWBUFFER
731 : #define Py_TPFLAGS_HAVE_NEWBUFFER 0
732 : #endif
733 : #ifndef Py_TPFLAGS_HAVE_FINALIZE
734 : #define Py_TPFLAGS_HAVE_FINALIZE 0
735 : #endif
736 : #ifndef Py_TPFLAGS_SEQUENCE
737 : #define Py_TPFLAGS_SEQUENCE 0
738 : #endif
739 : #ifndef Py_TPFLAGS_MAPPING
740 : #define Py_TPFLAGS_MAPPING 0
741 : #endif
742 : #ifndef METH_STACKLESS
743 : #define METH_STACKLESS 0
744 : #endif
745 : #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL)
746 : #ifndef METH_FASTCALL
747 : #define METH_FASTCALL 0x80
748 : #endif
749 : typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs);
750 : typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args,
751 : Py_ssize_t nargs, PyObject *kwnames);
752 : #else
753 : #if PY_VERSION_HEX >= 0x030d00A4
754 : # define __Pyx_PyCFunctionFast PyCFunctionFast
755 : # define __Pyx_PyCFunctionFastWithKeywords PyCFunctionFastWithKeywords
756 : #else
757 : # define __Pyx_PyCFunctionFast _PyCFunctionFast
758 : # define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords
759 : #endif
760 : #endif
761 : #if CYTHON_METH_FASTCALL
762 : #define __Pyx_METH_FASTCALL METH_FASTCALL
763 : #define __Pyx_PyCFunction_FastCall __Pyx_PyCFunctionFast
764 : #define __Pyx_PyCFunction_FastCallWithKeywords __Pyx_PyCFunctionFastWithKeywords
765 : #else
766 : #define __Pyx_METH_FASTCALL METH_VARARGS
767 : #define __Pyx_PyCFunction_FastCall PyCFunction
768 : #define __Pyx_PyCFunction_FastCallWithKeywords PyCFunctionWithKeywords
769 : #endif
770 : #if CYTHON_VECTORCALL
771 : #define __pyx_vectorcallfunc vectorcallfunc
772 : #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET PY_VECTORCALL_ARGUMENTS_OFFSET
773 : #define __Pyx_PyVectorcall_NARGS(n) PyVectorcall_NARGS((size_t)(n))
774 : #elif CYTHON_BACKPORT_VECTORCALL
775 : typedef PyObject *(*__pyx_vectorcallfunc)(PyObject *callable, PyObject *const *args,
776 : size_t nargsf, PyObject *kwnames);
777 : #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET ((size_t)1 << (8 * sizeof(size_t) - 1))
778 : #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(((size_t)(n)) & ~__Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET))
779 : #else
780 : #define __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET 0
781 : #define __Pyx_PyVectorcall_NARGS(n) ((Py_ssize_t)(n))
782 : #endif
783 : #if PY_MAJOR_VERSION >= 0x030900B1
784 : #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_CheckExact(func)
785 : #else
786 : #define __Pyx_PyCFunction_CheckExact(func) PyCFunction_Check(func)
787 : #endif
788 : #define __Pyx_CyOrPyCFunction_Check(func) PyCFunction_Check(func)
789 : #if CYTHON_COMPILING_IN_CPYTHON
790 : #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) (((PyCFunctionObject*)(func))->m_ml->ml_meth)
791 : #elif !CYTHON_COMPILING_IN_LIMITED_API
792 : #define __Pyx_CyOrPyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(func)
793 : #endif
794 : #if CYTHON_COMPILING_IN_CPYTHON
795 : #define __Pyx_CyOrPyCFunction_GET_FLAGS(func) (((PyCFunctionObject*)(func))->m_ml->ml_flags)
796 0 : static CYTHON_INLINE PyObject* __Pyx_CyOrPyCFunction_GET_SELF(PyObject *func) {
797 0 : return (__Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_STATIC) ? NULL : ((PyCFunctionObject*)func)->m_self;
798 : }
799 : #endif
800 : static CYTHON_INLINE int __Pyx__IsSameCFunction(PyObject *func, void *cfunc) {
801 : #if CYTHON_COMPILING_IN_LIMITED_API
802 : return PyCFunction_Check(func) && PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
803 : #else
804 : return PyCFunction_Check(func) && PyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
805 : #endif
806 : }
807 : #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCFunction(func, cfunc)
808 : #if __PYX_LIMITED_VERSION_HEX < 0x030900B1
809 : #define __Pyx_PyType_FromModuleAndSpec(m, s, b) ((void)m, PyType_FromSpecWithBases(s, b))
810 : typedef PyObject *(*__Pyx_PyCMethod)(PyObject *, PyTypeObject *, PyObject *const *, size_t, PyObject *);
811 : #else
812 : #define __Pyx_PyType_FromModuleAndSpec(m, s, b) PyType_FromModuleAndSpec(m, s, b)
813 : #define __Pyx_PyCMethod PyCMethod
814 : #endif
815 : #ifndef METH_METHOD
816 : #define METH_METHOD 0x200
817 : #endif
818 : #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc)
819 : #define PyObject_Malloc(s) PyMem_Malloc(s)
820 : #define PyObject_Free(p) PyMem_Free(p)
821 : #define PyObject_Realloc(p) PyMem_Realloc(p)
822 : #endif
823 : #if CYTHON_COMPILING_IN_LIMITED_API
824 : #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
825 : #define __Pyx_PyFrame_SetLineNumber(frame, lineno)
826 : #else
827 : #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0)
828 : #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno)
829 : #endif
830 : #if CYTHON_COMPILING_IN_LIMITED_API
831 : #define __Pyx_PyThreadState_Current PyThreadState_Get()
832 : #elif !CYTHON_FAST_THREAD_STATE
833 : #define __Pyx_PyThreadState_Current PyThreadState_GET()
834 : #elif PY_VERSION_HEX >= 0x030d00A1
835 : #define __Pyx_PyThreadState_Current PyThreadState_GetUnchecked()
836 : #elif PY_VERSION_HEX >= 0x03060000
837 : #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet()
838 : #elif PY_VERSION_HEX >= 0x03000000
839 : #define __Pyx_PyThreadState_Current PyThreadState_GET()
840 : #else
841 : #define __Pyx_PyThreadState_Current _PyThreadState_Current
842 : #endif
843 : #if CYTHON_COMPILING_IN_LIMITED_API
844 : static CYTHON_INLINE void *__Pyx_PyModule_GetState(PyObject *op)
845 : {
846 : void *result;
847 : result = PyModule_GetState(op);
848 : if (!result)
849 : Py_FatalError("Couldn't find the module state");
850 : return result;
851 : }
852 : #endif
853 : #define __Pyx_PyObject_GetSlot(obj, name, func_ctype) __Pyx_PyType_GetSlot(Py_TYPE(obj), name, func_ctype)
854 : #if CYTHON_COMPILING_IN_LIMITED_API
855 : #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((func_ctype) PyType_GetSlot((type), Py_##name))
856 : #else
857 : #define __Pyx_PyType_GetSlot(type, name, func_ctype) ((type)->name)
858 : #endif
859 : #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT)
860 : #include "pythread.h"
861 : #define Py_tss_NEEDS_INIT 0
862 : typedef int Py_tss_t;
863 : static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) {
864 : *key = PyThread_create_key();
865 : return 0;
866 : }
867 : static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) {
868 : Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t));
869 : *key = Py_tss_NEEDS_INIT;
870 : return key;
871 : }
872 : static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) {
873 : PyObject_Free(key);
874 : }
875 : static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) {
876 : return *key != Py_tss_NEEDS_INIT;
877 : }
878 : static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) {
879 : PyThread_delete_key(*key);
880 : *key = Py_tss_NEEDS_INIT;
881 : }
882 : static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) {
883 : return PyThread_set_key_value(*key, value);
884 : }
885 : static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) {
886 : return PyThread_get_key_value(*key);
887 : }
888 : #endif
889 : #if PY_MAJOR_VERSION < 3
890 : #if CYTHON_COMPILING_IN_PYPY
891 : #if PYPY_VERSION_NUM < 0x07030600
892 : #if defined(__cplusplus) && __cplusplus >= 201402L
893 : [[deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")]]
894 : #elif defined(__GNUC__) || defined(__clang__)
895 : __attribute__ ((__deprecated__("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6")))
896 : #elif defined(_MSC_VER)
897 : __declspec(deprecated("`with nogil:` inside a nogil function will not release the GIL in PyPy2 < 7.3.6"))
898 : #endif
899 : static CYTHON_INLINE int PyGILState_Check(void) {
900 : return 0;
901 : }
902 : #else // PYPY_VERSION_NUM < 0x07030600
903 : #endif // PYPY_VERSION_NUM < 0x07030600
904 : #else
905 : static CYTHON_INLINE int PyGILState_Check(void) {
906 : PyThreadState * tstate = _PyThreadState_Current;
907 : return tstate && (tstate == PyGILState_GetThisThreadState());
908 : }
909 : #endif
910 : #endif
911 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000 || defined(_PyDict_NewPresized)
912 : #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n))
913 : #else
914 : #define __Pyx_PyDict_NewPresized(n) PyDict_New()
915 : #endif
916 : #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION
917 : #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y)
918 : #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y)
919 : #else
920 : #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y)
921 : #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y)
922 : #endif
923 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B4 && PY_VERSION_HEX < 0x030d0000 && CYTHON_USE_UNICODE_INTERNALS
924 : #define __Pyx_PyDict_GetItemStrWithError(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash)
925 0 : static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStr(PyObject *dict, PyObject *name) {
926 0 : PyObject *res = __Pyx_PyDict_GetItemStrWithError(dict, name);
927 0 : if (res == NULL) PyErr_Clear();
928 0 : return res;
929 : }
930 : #elif PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
931 : #define __Pyx_PyDict_GetItemStrWithError PyDict_GetItemWithError
932 : #define __Pyx_PyDict_GetItemStr PyDict_GetItem
933 : #else
934 : static CYTHON_INLINE PyObject * __Pyx_PyDict_GetItemStrWithError(PyObject *dict, PyObject *name) {
935 : #if CYTHON_COMPILING_IN_PYPY
936 : return PyDict_GetItem(dict, name);
937 : #else
938 : PyDictEntry *ep;
939 : PyDictObject *mp = (PyDictObject*) dict;
940 : long hash = ((PyStringObject *) name)->ob_shash;
941 : assert(hash != -1);
942 : ep = (mp->ma_lookup)(mp, name, hash);
943 : if (ep == NULL) {
944 : return NULL;
945 : }
946 : return ep->me_value;
947 : #endif
948 : }
949 : #define __Pyx_PyDict_GetItemStr PyDict_GetItem
950 : #endif
951 : #if CYTHON_USE_TYPE_SLOTS
952 : #define __Pyx_PyType_GetFlags(tp) (((PyTypeObject *)tp)->tp_flags)
953 : #define __Pyx_PyType_HasFeature(type, feature) ((__Pyx_PyType_GetFlags(type) & (feature)) != 0)
954 : #define __Pyx_PyObject_GetIterNextFunc(obj) (Py_TYPE(obj)->tp_iternext)
955 : #else
956 : #define __Pyx_PyType_GetFlags(tp) (PyType_GetFlags((PyTypeObject *)tp))
957 : #define __Pyx_PyType_HasFeature(type, feature) PyType_HasFeature(type, feature)
958 : #define __Pyx_PyObject_GetIterNextFunc(obj) PyIter_Next
959 : #endif
960 : #if CYTHON_COMPILING_IN_LIMITED_API
961 : #define __Pyx_SetItemOnTypeDict(tp, k, v) PyObject_GenericSetAttr((PyObject*)tp, k, v)
962 : #else
963 : #define __Pyx_SetItemOnTypeDict(tp, k, v) PyDict_SetItem(tp->tp_dict, k, v)
964 : #endif
965 : #if CYTHON_USE_TYPE_SPECS && PY_VERSION_HEX >= 0x03080000
966 : #define __Pyx_PyHeapTypeObject_GC_Del(obj) {\
967 : PyTypeObject *type = Py_TYPE((PyObject*)obj);\
968 : assert(__Pyx_PyType_HasFeature(type, Py_TPFLAGS_HEAPTYPE));\
969 : PyObject_GC_Del(obj);\
970 : Py_DECREF(type);\
971 : }
972 : #else
973 : #define __Pyx_PyHeapTypeObject_GC_Del(obj) PyObject_GC_Del(obj)
974 : #endif
975 : #if CYTHON_COMPILING_IN_LIMITED_API
976 : #define CYTHON_PEP393_ENABLED 1
977 : #define __Pyx_PyUnicode_READY(op) (0)
978 : #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GetLength(u)
979 : #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_ReadChar(u, i)
980 : #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((void)u, 1114111U)
981 : #define __Pyx_PyUnicode_KIND(u) ((void)u, (0))
982 : #define __Pyx_PyUnicode_DATA(u) ((void*)u)
983 : #define __Pyx_PyUnicode_READ(k, d, i) ((void)k, PyUnicode_ReadChar((PyObject*)(d), i))
984 : #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GetLength(u))
985 : #elif PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
986 : #define CYTHON_PEP393_ENABLED 1
987 : #if PY_VERSION_HEX >= 0x030C0000
988 : #define __Pyx_PyUnicode_READY(op) (0)
989 : #else
990 : #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\
991 : 0 : _PyUnicode_Ready((PyObject *)(op)))
992 : #endif
993 : #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u)
994 : #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
995 : #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u)
996 : #define __Pyx_PyUnicode_KIND(u) ((int)PyUnicode_KIND(u))
997 : #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u)
998 : #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i)
999 : #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, (Py_UCS4) ch)
1000 : #if PY_VERSION_HEX >= 0x030C0000
1001 : #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u))
1002 : #else
1003 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000
1004 : #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length))
1005 : #else
1006 : #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u)))
1007 : #endif
1008 : #endif
1009 : #else
1010 : #define CYTHON_PEP393_ENABLED 0
1011 : #define PyUnicode_1BYTE_KIND 1
1012 : #define PyUnicode_2BYTE_KIND 2
1013 : #define PyUnicode_4BYTE_KIND 4
1014 : #define __Pyx_PyUnicode_READY(op) (0)
1015 : #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u)
1016 : #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
1017 : #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535U : 1114111U)
1018 : #define __Pyx_PyUnicode_KIND(u) ((int)sizeof(Py_UNICODE))
1019 : #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u))
1020 : #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
1021 : #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = (Py_UNICODE) ch)
1022 : #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u))
1023 : #endif
1024 : #if CYTHON_COMPILING_IN_PYPY
1025 : #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
1026 : #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
1027 : #else
1028 : #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
1029 : #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\
1030 : PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
1031 : #endif
1032 : #if CYTHON_COMPILING_IN_PYPY
1033 : #if !defined(PyUnicode_DecodeUnicodeEscape)
1034 : #define PyUnicode_DecodeUnicodeEscape(s, size, errors) PyUnicode_Decode(s, size, "unicode_escape", errors)
1035 : #endif
1036 : #if !defined(PyUnicode_Contains) || (PY_MAJOR_VERSION == 2 && PYPY_VERSION_NUM < 0x07030500)
1037 : #undef PyUnicode_Contains
1038 : #define PyUnicode_Contains(u, s) PySequence_Contains(u, s)
1039 : #endif
1040 : #if !defined(PyByteArray_Check)
1041 : #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type)
1042 : #endif
1043 : #if !defined(PyObject_Format)
1044 : #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt)
1045 : #endif
1046 : #endif
1047 : #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
1048 : #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
1049 : #if PY_MAJOR_VERSION >= 3
1050 : #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b)
1051 : #else
1052 : #define __Pyx_PyString_Format(a, b) PyString_Format(a, b)
1053 : #endif
1054 : #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII)
1055 : #define PyObject_ASCII(o) PyObject_Repr(o)
1056 : #endif
1057 : #if PY_MAJOR_VERSION >= 3
1058 : #define PyBaseString_Type PyUnicode_Type
1059 : #define PyStringObject PyUnicodeObject
1060 : #define PyString_Type PyUnicode_Type
1061 : #define PyString_Check PyUnicode_Check
1062 : #define PyString_CheckExact PyUnicode_CheckExact
1063 : #ifndef PyObject_Unicode
1064 : #define PyObject_Unicode PyObject_Str
1065 : #endif
1066 : #endif
1067 : #if PY_MAJOR_VERSION >= 3
1068 : #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
1069 : #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
1070 : #else
1071 : #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj))
1072 : #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
1073 : #endif
1074 : #if CYTHON_COMPILING_IN_CPYTHON
1075 : #define __Pyx_PySequence_ListKeepNew(obj)\
1076 : (likely(PyList_CheckExact(obj) && Py_REFCNT(obj) == 1) ? __Pyx_NewRef(obj) : PySequence_List(obj))
1077 : #else
1078 : #define __Pyx_PySequence_ListKeepNew(obj) PySequence_List(obj)
1079 : #endif
1080 : #ifndef PySet_CheckExact
1081 : #define PySet_CheckExact(obj) __Pyx_IS_TYPE(obj, &PySet_Type)
1082 : #endif
1083 : #if PY_VERSION_HEX >= 0x030900A4
1084 : #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt)
1085 : #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size)
1086 : #else
1087 : #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt)
1088 : #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size)
1089 : #endif
1090 : #if CYTHON_ASSUME_SAFE_MACROS
1091 : #define __Pyx_PySequence_ITEM(o, i) PySequence_ITEM(o, i)
1092 : #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq)
1093 : #define __Pyx_PyTuple_SET_ITEM(o, i, v) (PyTuple_SET_ITEM(o, i, v), (0))
1094 : #define __Pyx_PyList_SET_ITEM(o, i, v) (PyList_SET_ITEM(o, i, v), (0))
1095 : #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_GET_SIZE(o)
1096 : #define __Pyx_PyList_GET_SIZE(o) PyList_GET_SIZE(o)
1097 : #define __Pyx_PySet_GET_SIZE(o) PySet_GET_SIZE(o)
1098 : #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_GET_SIZE(o)
1099 : #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_GET_SIZE(o)
1100 : #else
1101 : #define __Pyx_PySequence_ITEM(o, i) PySequence_GetItem(o, i)
1102 : #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq)
1103 : #define __Pyx_PyTuple_SET_ITEM(o, i, v) PyTuple_SetItem(o, i, v)
1104 : #define __Pyx_PyList_SET_ITEM(o, i, v) PyList_SetItem(o, i, v)
1105 : #define __Pyx_PyTuple_GET_SIZE(o) PyTuple_Size(o)
1106 : #define __Pyx_PyList_GET_SIZE(o) PyList_Size(o)
1107 : #define __Pyx_PySet_GET_SIZE(o) PySet_Size(o)
1108 : #define __Pyx_PyBytes_GET_SIZE(o) PyBytes_Size(o)
1109 : #define __Pyx_PyByteArray_GET_SIZE(o) PyByteArray_Size(o)
1110 : #endif
1111 : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
1112 : #define __Pyx_PyImport_AddModuleRef(name) PyImport_AddModuleRef(name)
1113 : #else
1114 4 : static CYTHON_INLINE PyObject *__Pyx_PyImport_AddModuleRef(const char *name) {
1115 4 : PyObject *module = PyImport_AddModule(name);
1116 4 : Py_XINCREF(module);
1117 4 : return module;
1118 : }
1119 : #endif
1120 : #if PY_MAJOR_VERSION >= 3
1121 : #define PyIntObject PyLongObject
1122 : #define PyInt_Type PyLong_Type
1123 : #define PyInt_Check(op) PyLong_Check(op)
1124 : #define PyInt_CheckExact(op) PyLong_CheckExact(op)
1125 : #define __Pyx_Py3Int_Check(op) PyLong_Check(op)
1126 : #define __Pyx_Py3Int_CheckExact(op) PyLong_CheckExact(op)
1127 : #define PyInt_FromString PyLong_FromString
1128 : #define PyInt_FromUnicode PyLong_FromUnicode
1129 : #define PyInt_FromLong PyLong_FromLong
1130 : #define PyInt_FromSize_t PyLong_FromSize_t
1131 : #define PyInt_FromSsize_t PyLong_FromSsize_t
1132 : #define PyInt_AsLong PyLong_AsLong
1133 : #define PyInt_AS_LONG PyLong_AS_LONG
1134 : #define PyInt_AsSsize_t PyLong_AsSsize_t
1135 : #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask
1136 : #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
1137 : #define PyNumber_Int PyNumber_Long
1138 : #else
1139 : #define __Pyx_Py3Int_Check(op) (PyLong_Check(op) || PyInt_Check(op))
1140 : #define __Pyx_Py3Int_CheckExact(op) (PyLong_CheckExact(op) || PyInt_CheckExact(op))
1141 : #endif
1142 : #if PY_MAJOR_VERSION >= 3
1143 : #define PyBoolObject PyLongObject
1144 : #endif
1145 : #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY
1146 : #ifndef PyUnicode_InternFromString
1147 : #define PyUnicode_InternFromString(s) PyUnicode_FromString(s)
1148 : #endif
1149 : #endif
1150 : #if PY_VERSION_HEX < 0x030200A4
1151 : typedef long Py_hash_t;
1152 : #define __Pyx_PyInt_FromHash_t PyInt_FromLong
1153 : #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t
1154 : #else
1155 : #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
1156 : #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t
1157 : #endif
1158 : #if CYTHON_USE_ASYNC_SLOTS
1159 : #if PY_VERSION_HEX >= 0x030500B1
1160 : #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods
1161 : #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async)
1162 : #else
1163 : #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved))
1164 : #endif
1165 : #else
1166 : #define __Pyx_PyType_AsAsync(obj) NULL
1167 : #endif
1168 : #ifndef __Pyx_PyAsyncMethodsStruct
1169 : typedef struct {
1170 : unaryfunc am_await;
1171 : unaryfunc am_aiter;
1172 : unaryfunc am_anext;
1173 : } __Pyx_PyAsyncMethodsStruct;
1174 : #endif
1175 :
1176 : #if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS)
1177 : #if !defined(_USE_MATH_DEFINES)
1178 : #define _USE_MATH_DEFINES
1179 : #endif
1180 : #endif
1181 : #include <math.h>
1182 : #ifdef NAN
1183 : #define __PYX_NAN() ((float) NAN)
1184 : #else
1185 : static CYTHON_INLINE float __PYX_NAN() {
1186 : float value;
1187 : memset(&value, 0xFF, sizeof(value));
1188 : return value;
1189 : }
1190 : #endif
1191 : #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL)
1192 : #define __Pyx_truncl trunc
1193 : #else
1194 : #define __Pyx_truncl truncl
1195 : #endif
1196 :
1197 : #define __PYX_MARK_ERR_POS(f_index, lineno) \
1198 : { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; }
1199 : #define __PYX_ERR(f_index, lineno, Ln_error) \
1200 : { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }
1201 :
1202 : #ifdef CYTHON_EXTERN_C
1203 : #undef __PYX_EXTERN_C
1204 : #define __PYX_EXTERN_C CYTHON_EXTERN_C
1205 : #elif defined(__PYX_EXTERN_C)
1206 : #ifdef _MSC_VER
1207 : #pragma message ("Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.")
1208 : #else
1209 : #warning Please do not define the '__PYX_EXTERN_C' macro externally. Use 'CYTHON_EXTERN_C' instead.
1210 : #endif
1211 : #else
1212 : #ifdef __cplusplus
1213 : #define __PYX_EXTERN_C extern "C"
1214 : #else
1215 : #define __PYX_EXTERN_C extern
1216 : #endif
1217 : #endif
1218 :
1219 : #define __PYX_HAVE__scipy__signal___sosfilt
1220 : #define __PYX_HAVE_API__scipy__signal___sosfilt
1221 : /* Early includes */
1222 : #include <string.h>
1223 : #include <stdio.h>
1224 :
1225 : /* Using NumPy API declarations from "numpy/__init__.cython-30.pxd" */
1226 :
1227 : #include "numpy/arrayobject.h"
1228 : #include "numpy/ndarrayobject.h"
1229 : #include "numpy/ndarraytypes.h"
1230 : #include "numpy/arrayscalars.h"
1231 : #include "numpy/ufuncobject.h"
1232 : #include "pythread.h"
1233 : #include <stdlib.h>
1234 : #ifdef _OPENMP
1235 : #include <omp.h>
1236 : #endif /* _OPENMP */
1237 :
1238 : #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)
1239 : #define CYTHON_WITHOUT_ASSERTIONS
1240 : #endif
1241 :
1242 : typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding;
1243 : const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry;
1244 :
1245 : #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
1246 : #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0
1247 : #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8)
1248 : #define __PYX_DEFAULT_STRING_ENCODING ""
1249 : #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
1250 : #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
1251 : #define __Pyx_uchar_cast(c) ((unsigned char)c)
1252 : #define __Pyx_long_cast(x) ((long)x)
1253 : #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\
1254 : (sizeof(type) < sizeof(Py_ssize_t)) ||\
1255 : (sizeof(type) > sizeof(Py_ssize_t) &&\
1256 : likely(v < (type)PY_SSIZE_T_MAX ||\
1257 : v == (type)PY_SSIZE_T_MAX) &&\
1258 : (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\
1259 : v == (type)PY_SSIZE_T_MIN))) ||\
1260 : (sizeof(type) == sizeof(Py_ssize_t) &&\
1261 : (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\
1262 : v == (type)PY_SSIZE_T_MAX))) )
1263 402 : static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) {
1264 402 : return (size_t) i < (size_t) limit;
1265 : }
1266 : #if defined (__cplusplus) && __cplusplus >= 201103L
1267 : #include <cstdlib>
1268 : #define __Pyx_sst_abs(value) std::abs(value)
1269 : #elif SIZEOF_INT >= SIZEOF_SIZE_T
1270 : #define __Pyx_sst_abs(value) abs(value)
1271 : #elif SIZEOF_LONG >= SIZEOF_SIZE_T
1272 : #define __Pyx_sst_abs(value) labs(value)
1273 : #elif defined (_MSC_VER)
1274 : #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value))
1275 : #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
1276 : #define __Pyx_sst_abs(value) llabs(value)
1277 : #elif defined (__GNUC__)
1278 : #define __Pyx_sst_abs(value) __builtin_llabs(value)
1279 : #else
1280 : #define __Pyx_sst_abs(value) ((value<0) ? -value : value)
1281 : #endif
1282 : static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s);
1283 : static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*);
1284 : static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
1285 : static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char*);
1286 : #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
1287 : #define __Pyx_PyBytes_FromString PyBytes_FromString
1288 : #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
1289 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*);
1290 : #if PY_MAJOR_VERSION < 3
1291 : #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString
1292 : #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
1293 : #else
1294 : #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString
1295 : #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
1296 : #endif
1297 : #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s))
1298 : #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s))
1299 : #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s))
1300 : #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s))
1301 : #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s))
1302 : #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s))
1303 : #define __Pyx_PyObject_AsWritableString(s) ((char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1304 : #define __Pyx_PyObject_AsWritableSString(s) ((signed char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1305 : #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*)(__pyx_uintptr_t) __Pyx_PyObject_AsString(s))
1306 : #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s))
1307 : #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s))
1308 : #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s)
1309 : #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s)
1310 : #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s)
1311 : #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s)
1312 : #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s)
1313 : #define __Pyx_PyUnicode_FromOrdinal(o) PyUnicode_FromOrdinal((int)o)
1314 : #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode
1315 : #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj)
1316 : #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None)
1317 : static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b);
1318 : static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
1319 : static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*);
1320 : static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x);
1321 : #define __Pyx_PySequence_Tuple(obj)\
1322 : (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj))
1323 : static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
1324 : static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
1325 : static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
1326 : #if CYTHON_ASSUME_SAFE_MACROS
1327 : #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
1328 : #else
1329 : #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
1330 : #endif
1331 : #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
1332 : #if PY_MAJOR_VERSION >= 3
1333 : #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x))
1334 : #else
1335 : #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x))
1336 : #endif
1337 : #if CYTHON_USE_PYLONG_INTERNALS
1338 : #if PY_VERSION_HEX >= 0x030C00A7
1339 : #ifndef _PyLong_SIGN_MASK
1340 : #define _PyLong_SIGN_MASK 3
1341 : #endif
1342 : #ifndef _PyLong_NON_SIZE_BITS
1343 : #define _PyLong_NON_SIZE_BITS 3
1344 : #endif
1345 : #define __Pyx_PyLong_Sign(x) (((PyLongObject*)x)->long_value.lv_tag & _PyLong_SIGN_MASK)
1346 : #define __Pyx_PyLong_IsNeg(x) ((__Pyx_PyLong_Sign(x) & 2) != 0)
1347 : #define __Pyx_PyLong_IsNonNeg(x) (!__Pyx_PyLong_IsNeg(x))
1348 : #define __Pyx_PyLong_IsZero(x) (__Pyx_PyLong_Sign(x) & 1)
1349 : #define __Pyx_PyLong_IsPos(x) (__Pyx_PyLong_Sign(x) == 0)
1350 : #define __Pyx_PyLong_CompactValueUnsigned(x) (__Pyx_PyLong_Digits(x)[0])
1351 : #define __Pyx_PyLong_DigitCount(x) ((Py_ssize_t) (((PyLongObject*)x)->long_value.lv_tag >> _PyLong_NON_SIZE_BITS))
1352 : #define __Pyx_PyLong_SignedDigitCount(x)\
1353 : ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
1354 : #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
1355 : #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
1356 : #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
1357 : #else
1358 : #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
1359 : #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
1360 : #endif
1361 : typedef Py_ssize_t __Pyx_compact_pylong;
1362 : typedef size_t __Pyx_compact_upylong;
1363 : #else
1364 : #define __Pyx_PyLong_IsNeg(x) (Py_SIZE(x) < 0)
1365 : #define __Pyx_PyLong_IsNonNeg(x) (Py_SIZE(x) >= 0)
1366 : #define __Pyx_PyLong_IsZero(x) (Py_SIZE(x) == 0)
1367 : #define __Pyx_PyLong_IsPos(x) (Py_SIZE(x) > 0)
1368 : #define __Pyx_PyLong_CompactValueUnsigned(x) ((Py_SIZE(x) == 0) ? 0 : __Pyx_PyLong_Digits(x)[0])
1369 : #define __Pyx_PyLong_DigitCount(x) __Pyx_sst_abs(Py_SIZE(x))
1370 : #define __Pyx_PyLong_SignedDigitCount(x) Py_SIZE(x)
1371 : #define __Pyx_PyLong_IsCompact(x) (Py_SIZE(x) == 0 || Py_SIZE(x) == 1 || Py_SIZE(x) == -1)
1372 : #define __Pyx_PyLong_CompactValue(x)\
1373 : ((Py_SIZE(x) == 0) ? (sdigit) 0 : ((Py_SIZE(x) < 0) ? -(sdigit)__Pyx_PyLong_Digits(x)[0] : (sdigit)__Pyx_PyLong_Digits(x)[0]))
1374 : typedef sdigit __Pyx_compact_pylong;
1375 : typedef digit __Pyx_compact_upylong;
1376 : #endif
1377 : #if PY_VERSION_HEX >= 0x030C00A5
1378 : #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->long_value.ob_digit)
1379 : #else
1380 : #define __Pyx_PyLong_Digits(x) (((PyLongObject*)x)->ob_digit)
1381 : #endif
1382 : #endif
1383 : #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
1384 : #include <string.h>
1385 : static int __Pyx_sys_getdefaultencoding_not_ascii;
1386 : static int __Pyx_init_sys_getdefaultencoding_params(void) {
1387 : PyObject* sys;
1388 : PyObject* default_encoding = NULL;
1389 : PyObject* ascii_chars_u = NULL;
1390 : PyObject* ascii_chars_b = NULL;
1391 : const char* default_encoding_c;
1392 : sys = PyImport_ImportModule("sys");
1393 : if (!sys) goto bad;
1394 : default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL);
1395 : Py_DECREF(sys);
1396 : if (!default_encoding) goto bad;
1397 : default_encoding_c = PyBytes_AsString(default_encoding);
1398 : if (!default_encoding_c) goto bad;
1399 : if (strcmp(default_encoding_c, "ascii") == 0) {
1400 : __Pyx_sys_getdefaultencoding_not_ascii = 0;
1401 : } else {
1402 : char ascii_chars[128];
1403 : int c;
1404 : for (c = 0; c < 128; c++) {
1405 : ascii_chars[c] = (char) c;
1406 : }
1407 : __Pyx_sys_getdefaultencoding_not_ascii = 1;
1408 : ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
1409 : if (!ascii_chars_u) goto bad;
1410 : ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
1411 : if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
1412 : PyErr_Format(
1413 : PyExc_ValueError,
1414 : "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
1415 : default_encoding_c);
1416 : goto bad;
1417 : }
1418 : Py_DECREF(ascii_chars_u);
1419 : Py_DECREF(ascii_chars_b);
1420 : }
1421 : Py_DECREF(default_encoding);
1422 : return 0;
1423 : bad:
1424 : Py_XDECREF(default_encoding);
1425 : Py_XDECREF(ascii_chars_u);
1426 : Py_XDECREF(ascii_chars_b);
1427 : return -1;
1428 : }
1429 : #endif
1430 : #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
1431 : #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
1432 : #else
1433 : #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
1434 : #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
1435 : #include <string.h>
1436 : static char* __PYX_DEFAULT_STRING_ENCODING;
1437 : static int __Pyx_init_sys_getdefaultencoding_params(void) {
1438 : PyObject* sys;
1439 : PyObject* default_encoding = NULL;
1440 : char* default_encoding_c;
1441 : sys = PyImport_ImportModule("sys");
1442 : if (!sys) goto bad;
1443 : default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
1444 : Py_DECREF(sys);
1445 : if (!default_encoding) goto bad;
1446 : default_encoding_c = PyBytes_AsString(default_encoding);
1447 : if (!default_encoding_c) goto bad;
1448 : __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1);
1449 : if (!__PYX_DEFAULT_STRING_ENCODING) goto bad;
1450 : strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
1451 : Py_DECREF(default_encoding);
1452 : return 0;
1453 : bad:
1454 : Py_XDECREF(default_encoding);
1455 : return -1;
1456 : }
1457 : #endif
1458 : #endif
1459 :
1460 :
1461 : /* Test for GCC > 2.95 */
1462 : #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95)))
1463 : #define likely(x) __builtin_expect(!!(x), 1)
1464 : #define unlikely(x) __builtin_expect(!!(x), 0)
1465 : #else /* !__GNUC__ or GCC < 2.95 */
1466 : #define likely(x) (x)
1467 : #define unlikely(x) (x)
1468 : #endif /* __GNUC__ */
1469 : static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; }
1470 :
1471 : #if !CYTHON_USE_MODULE_STATE
1472 : static PyObject *__pyx_m = NULL;
1473 : #endif
1474 : static int __pyx_lineno;
1475 : static int __pyx_clineno = 0;
1476 : static const char * __pyx_cfilenm = __FILE__;
1477 : static const char *__pyx_filename;
1478 :
1479 : /* Header.proto */
1480 : #if !defined(CYTHON_CCOMPLEX)
1481 : #if defined(__cplusplus)
1482 : #define CYTHON_CCOMPLEX 1
1483 : #elif (defined(_Complex_I) && !defined(_MSC_VER)) || ((defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) && !defined(__STDC_NO_COMPLEX__) && !defined(_MSC_VER))
1484 : #define CYTHON_CCOMPLEX 1
1485 : #else
1486 : #define CYTHON_CCOMPLEX 0
1487 : #endif
1488 : #endif
1489 : #if CYTHON_CCOMPLEX
1490 : #ifdef __cplusplus
1491 : #include <complex>
1492 : #else
1493 : #include <complex.h>
1494 : #endif
1495 : #endif
1496 : #if CYTHON_CCOMPLEX && !defined(__cplusplus) && defined(__sun__) && defined(__GNUC__)
1497 : #undef _Complex_I
1498 : #define _Complex_I 1.0fj
1499 : #endif
1500 :
1501 : /* #### Code section: filename_table ### */
1502 :
1503 : static const char *__pyx_f[] = {
1504 : "_sosfilt.pyx",
1505 : "<stringsource>",
1506 : "__init__.cython-30.pxd",
1507 : "type.pxd",
1508 : };
1509 : /* #### Code section: utility_code_proto_before_types ### */
1510 : /* ForceInitThreads.proto */
1511 : #ifndef __PYX_FORCE_INIT_THREADS
1512 : #define __PYX_FORCE_INIT_THREADS 0
1513 : #endif
1514 :
1515 : /* NoFastGil.proto */
1516 : #define __Pyx_PyGILState_Ensure PyGILState_Ensure
1517 : #define __Pyx_PyGILState_Release PyGILState_Release
1518 : #define __Pyx_FastGIL_Remember()
1519 : #define __Pyx_FastGIL_Forget()
1520 : #define __Pyx_FastGilFuncInit()
1521 :
1522 : /* BufferFormatStructs.proto */
1523 : struct __Pyx_StructField_;
1524 : #define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0)
1525 : typedef struct {
1526 : const char* name;
1527 : struct __Pyx_StructField_* fields;
1528 : size_t size;
1529 : size_t arraysize[8];
1530 : int ndim;
1531 : char typegroup;
1532 : char is_unsigned;
1533 : int flags;
1534 : } __Pyx_TypeInfo;
1535 : typedef struct __Pyx_StructField_ {
1536 : __Pyx_TypeInfo* type;
1537 : const char* name;
1538 : size_t offset;
1539 : } __Pyx_StructField;
1540 : typedef struct {
1541 : __Pyx_StructField* field;
1542 : size_t parent_offset;
1543 : } __Pyx_BufFmt_StackElem;
1544 : typedef struct {
1545 : __Pyx_StructField root;
1546 : __Pyx_BufFmt_StackElem* head;
1547 : size_t fmt_offset;
1548 : size_t new_count, enc_count;
1549 : size_t struct_alignment;
1550 : int is_complex;
1551 : char enc_type;
1552 : char new_packmode;
1553 : char enc_packmode;
1554 : char is_valid_array;
1555 : } __Pyx_BufFmt_Context;
1556 :
1557 : /* Atomics.proto */
1558 : #include <pythread.h>
1559 : #ifndef CYTHON_ATOMICS
1560 : #define CYTHON_ATOMICS 1
1561 : #endif
1562 : #define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS
1563 : #define __pyx_atomic_int_type int
1564 : #define __pyx_nonatomic_int_type int
1565 : #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1566 : (__STDC_VERSION__ >= 201112L) &&\
1567 : !defined(__STDC_NO_ATOMICS__))
1568 : #include <stdatomic.h>
1569 : #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1570 : (__cplusplus >= 201103L) ||\
1571 : (defined(_MSC_VER) && _MSC_VER >= 1700)))
1572 : #include <atomic>
1573 : #endif
1574 : #if CYTHON_ATOMICS && (defined(__STDC_VERSION__) &&\
1575 : (__STDC_VERSION__ >= 201112L) &&\
1576 : !defined(__STDC_NO_ATOMICS__) &&\
1577 : ATOMIC_INT_LOCK_FREE == 2)
1578 : #undef __pyx_atomic_int_type
1579 : #define __pyx_atomic_int_type atomic_int
1580 : #define __pyx_atomic_incr_aligned(value) atomic_fetch_add_explicit(value, 1, memory_order_relaxed)
1581 : #define __pyx_atomic_decr_aligned(value) atomic_fetch_sub_explicit(value, 1, memory_order_acq_rel)
1582 : #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1583 : #pragma message ("Using standard C atomics")
1584 : #elif defined(__PYX_DEBUG_ATOMICS)
1585 : #warning "Using standard C atomics"
1586 : #endif
1587 : #elif CYTHON_ATOMICS && (defined(__cplusplus) && (\
1588 : (__cplusplus >= 201103L) ||\
1589 : \
1590 : (defined(_MSC_VER) && _MSC_VER >= 1700)) &&\
1591 : ATOMIC_INT_LOCK_FREE == 2)
1592 : #undef __pyx_atomic_int_type
1593 : #define __pyx_atomic_int_type std::atomic_int
1594 : #define __pyx_atomic_incr_aligned(value) std::atomic_fetch_add_explicit(value, 1, std::memory_order_relaxed)
1595 : #define __pyx_atomic_decr_aligned(value) std::atomic_fetch_sub_explicit(value, 1, std::memory_order_acq_rel)
1596 : #if defined(__PYX_DEBUG_ATOMICS) && defined(_MSC_VER)
1597 : #pragma message ("Using standard C++ atomics")
1598 : #elif defined(__PYX_DEBUG_ATOMICS)
1599 : #warning "Using standard C++ atomics"
1600 : #endif
1601 : #elif CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\
1602 : (__GNUC_MINOR__ > 1 ||\
1603 : (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2))))
1604 : #define __pyx_atomic_incr_aligned(value) __sync_fetch_and_add(value, 1)
1605 : #define __pyx_atomic_decr_aligned(value) __sync_fetch_and_sub(value, 1)
1606 : #ifdef __PYX_DEBUG_ATOMICS
1607 : #warning "Using GNU atomics"
1608 : #endif
1609 : #elif CYTHON_ATOMICS && defined(_MSC_VER)
1610 : #include <intrin.h>
1611 : #undef __pyx_atomic_int_type
1612 : #define __pyx_atomic_int_type long
1613 : #undef __pyx_nonatomic_int_type
1614 : #define __pyx_nonatomic_int_type long
1615 : #pragma intrinsic (_InterlockedExchangeAdd)
1616 : #define __pyx_atomic_incr_aligned(value) _InterlockedExchangeAdd(value, 1)
1617 : #define __pyx_atomic_decr_aligned(value) _InterlockedExchangeAdd(value, -1)
1618 : #ifdef __PYX_DEBUG_ATOMICS
1619 : #pragma message ("Using MSVC atomics")
1620 : #endif
1621 : #else
1622 : #undef CYTHON_ATOMICS
1623 : #define CYTHON_ATOMICS 0
1624 : #ifdef __PYX_DEBUG_ATOMICS
1625 : #warning "Not using atomics"
1626 : #endif
1627 : #endif
1628 : #if CYTHON_ATOMICS
1629 : #define __pyx_add_acquisition_count(memview)\
1630 : __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview))
1631 : #define __pyx_sub_acquisition_count(memview)\
1632 : __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview))
1633 : #else
1634 : #define __pyx_add_acquisition_count(memview)\
1635 : __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
1636 : #define __pyx_sub_acquisition_count(memview)\
1637 : __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock)
1638 : #endif
1639 :
1640 : /* MemviewSliceStruct.proto */
1641 : struct __pyx_memoryview_obj;
1642 : typedef struct {
1643 : struct __pyx_memoryview_obj *memview;
1644 : char *data;
1645 : Py_ssize_t shape[8];
1646 : Py_ssize_t strides[8];
1647 : Py_ssize_t suboffsets[8];
1648 : } __Pyx_memviewslice;
1649 : #define __Pyx_MemoryView_Len(m) (m.shape[0])
1650 :
1651 : /* #### Code section: numeric_typedefs ### */
1652 :
1653 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":769
1654 : * # in Cython to enable them only on the right systems.
1655 : *
1656 : * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<<
1657 : * ctypedef npy_int16 int16_t
1658 : * ctypedef npy_int32 int32_t
1659 : */
1660 : typedef npy_int8 __pyx_t_5numpy_int8_t;
1661 :
1662 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":770
1663 : *
1664 : * ctypedef npy_int8 int8_t
1665 : * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<<
1666 : * ctypedef npy_int32 int32_t
1667 : * ctypedef npy_int64 int64_t
1668 : */
1669 : typedef npy_int16 __pyx_t_5numpy_int16_t;
1670 :
1671 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":771
1672 : * ctypedef npy_int8 int8_t
1673 : * ctypedef npy_int16 int16_t
1674 : * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<<
1675 : * ctypedef npy_int64 int64_t
1676 : * #ctypedef npy_int96 int96_t
1677 : */
1678 : typedef npy_int32 __pyx_t_5numpy_int32_t;
1679 :
1680 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":772
1681 : * ctypedef npy_int16 int16_t
1682 : * ctypedef npy_int32 int32_t
1683 : * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<<
1684 : * #ctypedef npy_int96 int96_t
1685 : * #ctypedef npy_int128 int128_t
1686 : */
1687 : typedef npy_int64 __pyx_t_5numpy_int64_t;
1688 :
1689 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":776
1690 : * #ctypedef npy_int128 int128_t
1691 : *
1692 : * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<<
1693 : * ctypedef npy_uint16 uint16_t
1694 : * ctypedef npy_uint32 uint32_t
1695 : */
1696 : typedef npy_uint8 __pyx_t_5numpy_uint8_t;
1697 :
1698 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":777
1699 : *
1700 : * ctypedef npy_uint8 uint8_t
1701 : * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<<
1702 : * ctypedef npy_uint32 uint32_t
1703 : * ctypedef npy_uint64 uint64_t
1704 : */
1705 : typedef npy_uint16 __pyx_t_5numpy_uint16_t;
1706 :
1707 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":778
1708 : * ctypedef npy_uint8 uint8_t
1709 : * ctypedef npy_uint16 uint16_t
1710 : * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<<
1711 : * ctypedef npy_uint64 uint64_t
1712 : * #ctypedef npy_uint96 uint96_t
1713 : */
1714 : typedef npy_uint32 __pyx_t_5numpy_uint32_t;
1715 :
1716 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":779
1717 : * ctypedef npy_uint16 uint16_t
1718 : * ctypedef npy_uint32 uint32_t
1719 : * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<<
1720 : * #ctypedef npy_uint96 uint96_t
1721 : * #ctypedef npy_uint128 uint128_t
1722 : */
1723 : typedef npy_uint64 __pyx_t_5numpy_uint64_t;
1724 :
1725 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":783
1726 : * #ctypedef npy_uint128 uint128_t
1727 : *
1728 : * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<<
1729 : * ctypedef npy_float64 float64_t
1730 : * #ctypedef npy_float80 float80_t
1731 : */
1732 : typedef npy_float32 __pyx_t_5numpy_float32_t;
1733 :
1734 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":784
1735 : *
1736 : * ctypedef npy_float32 float32_t
1737 : * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<<
1738 : * #ctypedef npy_float80 float80_t
1739 : * #ctypedef npy_float128 float128_t
1740 : */
1741 : typedef npy_float64 __pyx_t_5numpy_float64_t;
1742 :
1743 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":791
1744 : * ctypedef double complex complex128_t
1745 : *
1746 : * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<<
1747 : * ctypedef npy_ulonglong ulonglong_t
1748 : *
1749 : */
1750 : typedef npy_longlong __pyx_t_5numpy_longlong_t;
1751 :
1752 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":792
1753 : *
1754 : * ctypedef npy_longlong longlong_t
1755 : * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<<
1756 : *
1757 : * ctypedef npy_intp intp_t
1758 : */
1759 : typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t;
1760 :
1761 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":794
1762 : * ctypedef npy_ulonglong ulonglong_t
1763 : *
1764 : * ctypedef npy_intp intp_t # <<<<<<<<<<<<<<
1765 : * ctypedef npy_uintp uintp_t
1766 : *
1767 : */
1768 : typedef npy_intp __pyx_t_5numpy_intp_t;
1769 :
1770 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":795
1771 : *
1772 : * ctypedef npy_intp intp_t
1773 : * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<<
1774 : *
1775 : * ctypedef npy_double float_t
1776 : */
1777 : typedef npy_uintp __pyx_t_5numpy_uintp_t;
1778 :
1779 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":797
1780 : * ctypedef npy_uintp uintp_t
1781 : *
1782 : * ctypedef npy_double float_t # <<<<<<<<<<<<<<
1783 : * ctypedef npy_double double_t
1784 : * ctypedef npy_longdouble longdouble_t
1785 : */
1786 : typedef npy_double __pyx_t_5numpy_float_t;
1787 :
1788 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":798
1789 : *
1790 : * ctypedef npy_double float_t
1791 : * ctypedef npy_double double_t # <<<<<<<<<<<<<<
1792 : * ctypedef npy_longdouble longdouble_t
1793 : *
1794 : */
1795 : typedef npy_double __pyx_t_5numpy_double_t;
1796 :
1797 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":799
1798 : * ctypedef npy_double float_t
1799 : * ctypedef npy_double double_t
1800 : * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<<
1801 : *
1802 : * ctypedef float complex cfloat_t
1803 : */
1804 : typedef npy_longdouble __pyx_t_5numpy_longdouble_t;
1805 : /* #### Code section: complex_type_declarations ### */
1806 : /* Declarations.proto */
1807 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1808 : #ifdef __cplusplus
1809 : typedef ::std::complex< float > __pyx_t_float_complex;
1810 : #else
1811 : typedef float _Complex __pyx_t_float_complex;
1812 : #endif
1813 : #else
1814 : typedef struct { float real, imag; } __pyx_t_float_complex;
1815 : #endif
1816 : static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float, float);
1817 :
1818 : /* Declarations.proto */
1819 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1820 : #ifdef __cplusplus
1821 : typedef ::std::complex< double > __pyx_t_double_complex;
1822 : #else
1823 : typedef double _Complex __pyx_t_double_complex;
1824 : #endif
1825 : #else
1826 : typedef struct { double real, imag; } __pyx_t_double_complex;
1827 : #endif
1828 : static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double);
1829 :
1830 : /* Declarations.proto */
1831 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
1832 : #ifdef __cplusplus
1833 : typedef ::std::complex< long double > __pyx_t_long_double_complex;
1834 : #else
1835 : typedef long double _Complex __pyx_t_long_double_complex;
1836 : #endif
1837 : #else
1838 : typedef struct { long double real, imag; } __pyx_t_long_double_complex;
1839 : #endif
1840 : static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double);
1841 :
1842 : /* #### Code section: type_declarations ### */
1843 :
1844 : /*--- Type declarations ---*/
1845 : struct __pyx_array_obj;
1846 : struct __pyx_MemviewEnum_obj;
1847 : struct __pyx_memoryview_obj;
1848 : struct __pyx_memoryviewslice_obj;
1849 :
1850 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1095
1851 : *
1852 : * # Iterator API added in v1.6
1853 : * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil # <<<<<<<<<<<<<<
1854 : * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil
1855 : *
1856 : */
1857 : typedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *);
1858 :
1859 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1096
1860 : * # Iterator API added in v1.6
1861 : * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil
1862 : * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil # <<<<<<<<<<<<<<
1863 : *
1864 : * cdef extern from "numpy/arrayobject.h":
1865 : */
1866 : typedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *);
1867 : struct __pyx_defaults;
1868 : typedef struct __pyx_defaults __pyx_defaults;
1869 : struct __pyx_defaults {
1870 : PyObject *__pyx_arg__fused_sigindex;
1871 : };
1872 :
1873 : /* "View.MemoryView":114
1874 : * @cython.collection_type("sequence")
1875 : * @cname("__pyx_array")
1876 : * cdef class array: # <<<<<<<<<<<<<<
1877 : *
1878 : * cdef:
1879 : */
1880 : struct __pyx_array_obj {
1881 : PyObject_HEAD
1882 : struct __pyx_vtabstruct_array *__pyx_vtab;
1883 : char *data;
1884 : Py_ssize_t len;
1885 : char *format;
1886 : int ndim;
1887 : Py_ssize_t *_shape;
1888 : Py_ssize_t *_strides;
1889 : Py_ssize_t itemsize;
1890 : PyObject *mode;
1891 : PyObject *_format;
1892 : void (*callback_free_data)(void *);
1893 : int free_data;
1894 : int dtype_is_object;
1895 : };
1896 :
1897 :
1898 : /* "View.MemoryView":302
1899 : *
1900 : * @cname('__pyx_MemviewEnum')
1901 : * cdef class Enum(object): # <<<<<<<<<<<<<<
1902 : * cdef object name
1903 : * def __init__(self, name):
1904 : */
1905 : struct __pyx_MemviewEnum_obj {
1906 : PyObject_HEAD
1907 : PyObject *name;
1908 : };
1909 :
1910 :
1911 : /* "View.MemoryView":337
1912 : *
1913 : * @cname('__pyx_memoryview')
1914 : * cdef class memoryview: # <<<<<<<<<<<<<<
1915 : *
1916 : * cdef object obj
1917 : */
1918 : struct __pyx_memoryview_obj {
1919 : PyObject_HEAD
1920 : struct __pyx_vtabstruct_memoryview *__pyx_vtab;
1921 : PyObject *obj;
1922 : PyObject *_size;
1923 : PyObject *_array_interface;
1924 : PyThread_type_lock lock;
1925 : __pyx_atomic_int_type acquisition_count;
1926 : Py_buffer view;
1927 : int flags;
1928 : int dtype_is_object;
1929 : __Pyx_TypeInfo *typeinfo;
1930 : };
1931 :
1932 :
1933 : /* "View.MemoryView":952
1934 : * @cython.collection_type("sequence")
1935 : * @cname('__pyx_memoryviewslice')
1936 : * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<<
1937 : * "Internal class for passing memoryview slices to Python"
1938 : *
1939 : */
1940 : struct __pyx_memoryviewslice_obj {
1941 : struct __pyx_memoryview_obj __pyx_base;
1942 : __Pyx_memviewslice from_slice;
1943 : PyObject *from_object;
1944 : PyObject *(*to_object_func)(char *);
1945 : int (*to_dtype_func)(char *, PyObject *);
1946 : };
1947 :
1948 :
1949 :
1950 : /* "View.MemoryView":114
1951 : * @cython.collection_type("sequence")
1952 : * @cname("__pyx_array")
1953 : * cdef class array: # <<<<<<<<<<<<<<
1954 : *
1955 : * cdef:
1956 : */
1957 :
1958 : struct __pyx_vtabstruct_array {
1959 : PyObject *(*get_memview)(struct __pyx_array_obj *);
1960 : };
1961 : static struct __pyx_vtabstruct_array *__pyx_vtabptr_array;
1962 :
1963 :
1964 : /* "View.MemoryView":337
1965 : *
1966 : * @cname('__pyx_memoryview')
1967 : * cdef class memoryview: # <<<<<<<<<<<<<<
1968 : *
1969 : * cdef object obj
1970 : */
1971 :
1972 : struct __pyx_vtabstruct_memoryview {
1973 : char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *);
1974 : PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *);
1975 : PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1976 : PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *);
1977 : PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *);
1978 : PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *);
1979 : PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *);
1980 : PyObject *(*_get_base)(struct __pyx_memoryview_obj *);
1981 : };
1982 : static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview;
1983 :
1984 :
1985 : /* "View.MemoryView":952
1986 : * @cython.collection_type("sequence")
1987 : * @cname('__pyx_memoryviewslice')
1988 : * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<<
1989 : * "Internal class for passing memoryview slices to Python"
1990 : *
1991 : */
1992 :
1993 : struct __pyx_vtabstruct__memoryviewslice {
1994 : struct __pyx_vtabstruct_memoryview __pyx_base;
1995 : };
1996 : static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice;
1997 : /* #### Code section: utility_code_proto ### */
1998 :
1999 : /* --- Runtime support code (head) --- */
2000 : /* Refnanny.proto */
2001 : #ifndef CYTHON_REFNANNY
2002 : #define CYTHON_REFNANNY 0
2003 : #endif
2004 : #if CYTHON_REFNANNY
2005 : typedef struct {
2006 : void (*INCREF)(void*, PyObject*, Py_ssize_t);
2007 : void (*DECREF)(void*, PyObject*, Py_ssize_t);
2008 : void (*GOTREF)(void*, PyObject*, Py_ssize_t);
2009 : void (*GIVEREF)(void*, PyObject*, Py_ssize_t);
2010 : void* (*SetupContext)(const char*, Py_ssize_t, const char*);
2011 : void (*FinishContext)(void**);
2012 : } __Pyx_RefNannyAPIStruct;
2013 : static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
2014 : static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname);
2015 : #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
2016 : #ifdef WITH_THREAD
2017 : #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2018 : if (acquire_gil) {\
2019 : PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2020 : __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2021 : PyGILState_Release(__pyx_gilstate_save);\
2022 : } else {\
2023 : __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__));\
2024 : }
2025 : #define __Pyx_RefNannyFinishContextNogil() {\
2026 : PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2027 : __Pyx_RefNannyFinishContext();\
2028 : PyGILState_Release(__pyx_gilstate_save);\
2029 : }
2030 : #else
2031 : #define __Pyx_RefNannySetupContext(name, acquire_gil)\
2032 : __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), (__LINE__), (__FILE__))
2033 : #define __Pyx_RefNannyFinishContextNogil() __Pyx_RefNannyFinishContext()
2034 : #endif
2035 : #define __Pyx_RefNannyFinishContextNogil() {\
2036 : PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\
2037 : __Pyx_RefNannyFinishContext();\
2038 : PyGILState_Release(__pyx_gilstate_save);\
2039 : }
2040 : #define __Pyx_RefNannyFinishContext()\
2041 : __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
2042 : #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2043 : #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2044 : #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2045 : #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), (__LINE__))
2046 : #define __Pyx_XINCREF(r) do { if((r) == NULL); else {__Pyx_INCREF(r); }} while(0)
2047 : #define __Pyx_XDECREF(r) do { if((r) == NULL); else {__Pyx_DECREF(r); }} while(0)
2048 : #define __Pyx_XGOTREF(r) do { if((r) == NULL); else {__Pyx_GOTREF(r); }} while(0)
2049 : #define __Pyx_XGIVEREF(r) do { if((r) == NULL); else {__Pyx_GIVEREF(r);}} while(0)
2050 : #else
2051 : #define __Pyx_RefNannyDeclarations
2052 : #define __Pyx_RefNannySetupContext(name, acquire_gil)
2053 : #define __Pyx_RefNannyFinishContextNogil()
2054 : #define __Pyx_RefNannyFinishContext()
2055 : #define __Pyx_INCREF(r) Py_INCREF(r)
2056 : #define __Pyx_DECREF(r) Py_DECREF(r)
2057 : #define __Pyx_GOTREF(r)
2058 : #define __Pyx_GIVEREF(r)
2059 : #define __Pyx_XINCREF(r) Py_XINCREF(r)
2060 : #define __Pyx_XDECREF(r) Py_XDECREF(r)
2061 : #define __Pyx_XGOTREF(r)
2062 : #define __Pyx_XGIVEREF(r)
2063 : #endif
2064 : #define __Pyx_Py_XDECREF_SET(r, v) do {\
2065 : PyObject *tmp = (PyObject *) r;\
2066 : r = v; Py_XDECREF(tmp);\
2067 : } while (0)
2068 : #define __Pyx_XDECREF_SET(r, v) do {\
2069 : PyObject *tmp = (PyObject *) r;\
2070 : r = v; __Pyx_XDECREF(tmp);\
2071 : } while (0)
2072 : #define __Pyx_DECREF_SET(r, v) do {\
2073 : PyObject *tmp = (PyObject *) r;\
2074 : r = v; __Pyx_DECREF(tmp);\
2075 : } while (0)
2076 : #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
2077 : #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
2078 :
2079 : /* PyErrExceptionMatches.proto */
2080 : #if CYTHON_FAST_THREAD_STATE
2081 : #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err)
2082 : static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err);
2083 : #else
2084 : #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err)
2085 : #endif
2086 :
2087 : /* PyThreadStateGet.proto */
2088 : #if CYTHON_FAST_THREAD_STATE
2089 : #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate;
2090 : #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current;
2091 : #if PY_VERSION_HEX >= 0x030C00A6
2092 : #define __Pyx_PyErr_Occurred() (__pyx_tstate->current_exception != NULL)
2093 : #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->current_exception ? (PyObject*) Py_TYPE(__pyx_tstate->current_exception) : (PyObject*) NULL)
2094 : #else
2095 : #define __Pyx_PyErr_Occurred() (__pyx_tstate->curexc_type != NULL)
2096 : #define __Pyx_PyErr_CurrentExceptionType() (__pyx_tstate->curexc_type)
2097 : #endif
2098 : #else
2099 : #define __Pyx_PyThreadState_declare
2100 : #define __Pyx_PyThreadState_assign
2101 : #define __Pyx_PyErr_Occurred() (PyErr_Occurred() != NULL)
2102 : #define __Pyx_PyErr_CurrentExceptionType() PyErr_Occurred()
2103 : #endif
2104 :
2105 : /* PyErrFetchRestore.proto */
2106 : #if CYTHON_FAST_THREAD_STATE
2107 : #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL)
2108 : #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb)
2109 : #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb)
2110 : #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb)
2111 : #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb)
2112 : static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2113 : static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2114 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A6
2115 : #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL))
2116 : #else
2117 : #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2118 : #endif
2119 : #else
2120 : #define __Pyx_PyErr_Clear() PyErr_Clear()
2121 : #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc)
2122 : #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb)
2123 : #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb)
2124 : #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb)
2125 : #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb)
2126 : #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb)
2127 : #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb)
2128 : #endif
2129 :
2130 : /* PyObjectGetAttrStr.proto */
2131 : #if CYTHON_USE_TYPE_SLOTS
2132 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name);
2133 : #else
2134 : #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
2135 : #endif
2136 :
2137 : /* PyObjectGetAttrStrNoError.proto */
2138 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name);
2139 :
2140 : /* GetBuiltinName.proto */
2141 : static PyObject *__Pyx_GetBuiltinName(PyObject *name);
2142 :
2143 : /* TupleAndListFromArray.proto */
2144 : #if CYTHON_COMPILING_IN_CPYTHON
2145 : static CYTHON_INLINE PyObject* __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n);
2146 : static CYTHON_INLINE PyObject* __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n);
2147 : #endif
2148 :
2149 : /* IncludeStringH.proto */
2150 : #include <string.h>
2151 :
2152 : /* BytesEquals.proto */
2153 : static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals);
2154 :
2155 : /* UnicodeEquals.proto */
2156 : static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals);
2157 :
2158 : /* fastcall.proto */
2159 : #if CYTHON_AVOID_BORROWED_REFS
2160 : #define __Pyx_Arg_VARARGS(args, i) PySequence_GetItem(args, i)
2161 : #elif CYTHON_ASSUME_SAFE_MACROS
2162 : #define __Pyx_Arg_VARARGS(args, i) PyTuple_GET_ITEM(args, i)
2163 : #else
2164 : #define __Pyx_Arg_VARARGS(args, i) PyTuple_GetItem(args, i)
2165 : #endif
2166 : #if CYTHON_AVOID_BORROWED_REFS
2167 : #define __Pyx_Arg_NewRef_VARARGS(arg) __Pyx_NewRef(arg)
2168 : #define __Pyx_Arg_XDECREF_VARARGS(arg) Py_XDECREF(arg)
2169 : #else
2170 : #define __Pyx_Arg_NewRef_VARARGS(arg) arg
2171 : #define __Pyx_Arg_XDECREF_VARARGS(arg)
2172 : #endif
2173 : #define __Pyx_NumKwargs_VARARGS(kwds) PyDict_Size(kwds)
2174 : #define __Pyx_KwValues_VARARGS(args, nargs) NULL
2175 : #define __Pyx_GetKwValue_VARARGS(kw, kwvalues, s) __Pyx_PyDict_GetItemStrWithError(kw, s)
2176 : #define __Pyx_KwargsAsDict_VARARGS(kw, kwvalues) PyDict_Copy(kw)
2177 : #if CYTHON_METH_FASTCALL
2178 : #define __Pyx_Arg_FASTCALL(args, i) args[i]
2179 : #define __Pyx_NumKwargs_FASTCALL(kwds) PyTuple_GET_SIZE(kwds)
2180 : #define __Pyx_KwValues_FASTCALL(args, nargs) ((args) + (nargs))
2181 : static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s);
2182 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
2183 : CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues);
2184 : #else
2185 : #define __Pyx_KwargsAsDict_FASTCALL(kw, kwvalues) _PyStack_AsDict(kwvalues, kw)
2186 : #endif
2187 : #define __Pyx_Arg_NewRef_FASTCALL(arg) arg /* no-op, __Pyx_Arg_FASTCALL is direct and this needs
2188 : to have the same reference counting */
2189 : #define __Pyx_Arg_XDECREF_FASTCALL(arg)
2190 : #else
2191 : #define __Pyx_Arg_FASTCALL __Pyx_Arg_VARARGS
2192 : #define __Pyx_NumKwargs_FASTCALL __Pyx_NumKwargs_VARARGS
2193 : #define __Pyx_KwValues_FASTCALL __Pyx_KwValues_VARARGS
2194 : #define __Pyx_GetKwValue_FASTCALL __Pyx_GetKwValue_VARARGS
2195 : #define __Pyx_KwargsAsDict_FASTCALL __Pyx_KwargsAsDict_VARARGS
2196 : #define __Pyx_Arg_NewRef_FASTCALL(arg) __Pyx_Arg_NewRef_VARARGS(arg)
2197 : #define __Pyx_Arg_XDECREF_FASTCALL(arg) __Pyx_Arg_XDECREF_VARARGS(arg)
2198 : #endif
2199 : #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
2200 : #define __Pyx_ArgsSlice_VARARGS(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_VARARGS(args, start), stop - start)
2201 : #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) __Pyx_PyTuple_FromArray(&__Pyx_Arg_FASTCALL(args, start), stop - start)
2202 : #else
2203 : #define __Pyx_ArgsSlice_VARARGS(args, start, stop) PyTuple_GetSlice(args, start, stop)
2204 : #define __Pyx_ArgsSlice_FASTCALL(args, start, stop) PyTuple_GetSlice(args, start, stop)
2205 : #endif
2206 :
2207 : /* RaiseArgTupleInvalid.proto */
2208 : static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
2209 : Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found);
2210 :
2211 : /* RaiseDoubleKeywords.proto */
2212 : static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name);
2213 :
2214 : /* ParseKeywords.proto */
2215 : static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject *const *kwvalues,
2216 : PyObject **argnames[],
2217 : PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,
2218 : const char* function_name);
2219 :
2220 : /* ArgTypeTest.proto */
2221 : #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\
2222 : ((likely(__Pyx_IS_TYPE(obj, type) | (none_allowed && (obj == Py_None)))) ? 1 :\
2223 : __Pyx__ArgTypeTest(obj, type, name, exact))
2224 : static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact);
2225 :
2226 : /* RaiseException.proto */
2227 : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause);
2228 :
2229 : /* PyFunctionFastCall.proto */
2230 : #if CYTHON_FAST_PYCALL
2231 : #if !CYTHON_VECTORCALL
2232 : #define __Pyx_PyFunction_FastCall(func, args, nargs)\
2233 : __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL)
2234 : static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs);
2235 : #endif
2236 : #define __Pyx_BUILD_ASSERT_EXPR(cond)\
2237 : (sizeof(char [1 - 2*!(cond)]) - 1)
2238 : #ifndef Py_MEMBER_SIZE
2239 : #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member)
2240 : #endif
2241 : #if !CYTHON_VECTORCALL
2242 : #if PY_VERSION_HEX >= 0x03080000
2243 : #include "frameobject.h"
2244 : #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
2245 : #ifndef Py_BUILD_CORE
2246 : #define Py_BUILD_CORE 1
2247 : #endif
2248 : #include "internal/pycore_frame.h"
2249 : #endif
2250 : #define __Pxy_PyFrame_Initialize_Offsets()
2251 : #define __Pyx_PyFrame_GetLocalsplus(frame) ((frame)->f_localsplus)
2252 : #else
2253 : static size_t __pyx_pyframe_localsplus_offset = 0;
2254 : #include "frameobject.h"
2255 : #define __Pxy_PyFrame_Initialize_Offsets()\
2256 : ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\
2257 : (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus)))
2258 : #define __Pyx_PyFrame_GetLocalsplus(frame)\
2259 : (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset))
2260 : #endif
2261 : #endif
2262 : #endif
2263 :
2264 : /* PyObjectCall.proto */
2265 : #if CYTHON_COMPILING_IN_CPYTHON
2266 : static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw);
2267 : #else
2268 : #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
2269 : #endif
2270 :
2271 : /* PyObjectCallMethO.proto */
2272 : #if CYTHON_COMPILING_IN_CPYTHON
2273 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg);
2274 : #endif
2275 :
2276 : /* PyObjectFastCall.proto */
2277 : #define __Pyx_PyObject_FastCall(func, args, nargs) __Pyx_PyObject_FastCallDict(func, args, (size_t)(nargs), NULL)
2278 : static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs);
2279 :
2280 : /* RaiseUnexpectedTypeError.proto */
2281 : static int __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj);
2282 :
2283 : /* GCCDiagnostics.proto */
2284 : #if !defined(__INTEL_COMPILER) && defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
2285 : #define __Pyx_HAS_GCC_DIAGNOSTIC
2286 : #endif
2287 :
2288 : /* BuildPyUnicode.proto */
2289 : static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
2290 : int prepend_sign, char padding_char);
2291 :
2292 : /* CIntToPyUnicode.proto */
2293 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char);
2294 :
2295 : /* CIntToPyUnicode.proto */
2296 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char);
2297 :
2298 : /* JoinPyUnicode.proto */
2299 : static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
2300 : Py_UCS4 max_char);
2301 :
2302 : /* StrEquals.proto */
2303 : #if PY_MAJOR_VERSION >= 3
2304 : #define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
2305 : #else
2306 : #define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
2307 : #endif
2308 :
2309 : /* PyObjectFormatSimple.proto */
2310 : #if CYTHON_COMPILING_IN_PYPY
2311 : #define __Pyx_PyObject_FormatSimple(s, f) (\
2312 : likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
2313 : PyObject_Format(s, f))
2314 : #elif PY_MAJOR_VERSION < 3
2315 : #define __Pyx_PyObject_FormatSimple(s, f) (\
2316 : likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
2317 : likely(PyString_CheckExact(s)) ? PyUnicode_FromEncodedObject(s, NULL, "strict") :\
2318 : PyObject_Format(s, f))
2319 : #elif CYTHON_USE_TYPE_SLOTS
2320 : #define __Pyx_PyObject_FormatSimple(s, f) (\
2321 : likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
2322 : likely(PyLong_CheckExact(s)) ? PyLong_Type.tp_repr(s) :\
2323 : likely(PyFloat_CheckExact(s)) ? PyFloat_Type.tp_repr(s) :\
2324 : PyObject_Format(s, f))
2325 : #else
2326 : #define __Pyx_PyObject_FormatSimple(s, f) (\
2327 : likely(PyUnicode_CheckExact(s)) ? (Py_INCREF(s), s) :\
2328 : PyObject_Format(s, f))
2329 : #endif
2330 :
2331 : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
2332 : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/
2333 : /* GetAttr.proto */
2334 : static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *);
2335 :
2336 : /* GetItemInt.proto */
2337 : #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2338 : (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2339 : __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\
2340 : (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\
2341 : __Pyx_GetItemInt_Generic(o, to_py_func(i))))
2342 : #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2343 : (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2344 : __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2345 : (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
2346 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
2347 : int wraparound, int boundscheck);
2348 : #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2349 : (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2350 : __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\
2351 : (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
2352 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
2353 : int wraparound, int boundscheck);
2354 : static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
2355 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
2356 : int is_list, int wraparound, int boundscheck);
2357 :
2358 : /* PyObjectCallOneArg.proto */
2359 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg);
2360 :
2361 : /* ObjectGetItem.proto */
2362 : #if CYTHON_USE_TYPE_SLOTS
2363 : static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key);
2364 : #else
2365 : #define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key)
2366 : #endif
2367 :
2368 : /* KeywordStringCheck.proto */
2369 : static int __Pyx_CheckKeywordStrings(PyObject *kw, const char* function_name, int kw_allowed);
2370 :
2371 : /* DivInt[Py_ssize_t].proto */
2372 : static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t, Py_ssize_t);
2373 :
2374 : /* UnaryNegOverflows.proto */
2375 : #define __Pyx_UNARY_NEG_WOULD_OVERFLOW(x)\
2376 : (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x)))
2377 :
2378 : /* GetAttr3.proto */
2379 : static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *);
2380 :
2381 : /* PyDictVersioning.proto */
2382 : #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
2383 : #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1)
2384 : #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
2385 : #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\
2386 : (version_var) = __PYX_GET_DICT_VERSION(dict);\
2387 : (cache_var) = (value);
2388 : #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\
2389 : static PY_UINT64_T __pyx_dict_version = 0;\
2390 : static PyObject *__pyx_dict_cached_value = NULL;\
2391 : if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
2392 : (VAR) = __pyx_dict_cached_value;\
2393 : } else {\
2394 : (VAR) = __pyx_dict_cached_value = (LOOKUP);\
2395 : __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
2396 : }\
2397 : }
2398 : static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj);
2399 : static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj);
2400 : static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version);
2401 : #else
2402 : #define __PYX_GET_DICT_VERSION(dict) (0)
2403 : #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)
2404 : #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP);
2405 : #endif
2406 :
2407 : /* GetModuleGlobalName.proto */
2408 : #if CYTHON_USE_DICT_VERSIONS
2409 : #define __Pyx_GetModuleGlobalName(var, name) do {\
2410 : static PY_UINT64_T __pyx_dict_version = 0;\
2411 : static PyObject *__pyx_dict_cached_value = NULL;\
2412 : (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
2413 : (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\
2414 : __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2415 : } while(0)
2416 : #define __Pyx_GetModuleGlobalNameUncached(var, name) do {\
2417 : PY_UINT64_T __pyx_dict_version;\
2418 : PyObject *__pyx_dict_cached_value;\
2419 : (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\
2420 : } while(0)
2421 : static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value);
2422 : #else
2423 : #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2424 : #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name)
2425 : static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name);
2426 : #endif
2427 :
2428 : /* AssertionsEnabled.proto */
2429 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag)
2430 : #define __Pyx_init_assertions_enabled() (0)
2431 : #define __pyx_assertions_enabled() (1)
2432 : #elif CYTHON_COMPILING_IN_LIMITED_API || (CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030C0000)
2433 : static int __pyx_assertions_enabled_flag;
2434 : #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag)
2435 1 : static int __Pyx_init_assertions_enabled(void) {
2436 1 : PyObject *builtins, *debug, *debug_str;
2437 1 : int flag;
2438 1 : builtins = PyEval_GetBuiltins();
2439 1 : if (!builtins) goto bad;
2440 1 : debug_str = PyUnicode_FromStringAndSize("__debug__", 9);
2441 1 : if (!debug_str) goto bad;
2442 1 : debug = PyObject_GetItem(builtins, debug_str);
2443 1 : Py_DECREF(debug_str);
2444 1 : if (!debug) goto bad;
2445 1 : flag = PyObject_IsTrue(debug);
2446 1 : Py_DECREF(debug);
2447 1 : if (flag == -1) goto bad;
2448 1 : __pyx_assertions_enabled_flag = flag;
2449 1 : return 0;
2450 0 : bad:
2451 0 : __pyx_assertions_enabled_flag = 1;
2452 0 : return -1;
2453 : }
2454 : #else
2455 : #define __Pyx_init_assertions_enabled() (0)
2456 : #define __pyx_assertions_enabled() (!Py_OptimizeFlag)
2457 : #endif
2458 :
2459 : /* RaiseTooManyValuesToUnpack.proto */
2460 : static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
2461 :
2462 : /* RaiseNeedMoreValuesToUnpack.proto */
2463 : static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
2464 :
2465 : /* RaiseNoneIterError.proto */
2466 : static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
2467 :
2468 : /* ExtTypeTest.proto */
2469 : static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type);
2470 :
2471 : /* GetTopmostException.proto */
2472 : #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
2473 : static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate);
2474 : #endif
2475 :
2476 : /* SaveResetException.proto */
2477 : #if CYTHON_FAST_THREAD_STATE
2478 : #define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb)
2479 : static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2480 : #define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb)
2481 : static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb);
2482 : #else
2483 : #define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb)
2484 : #define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb)
2485 : #endif
2486 :
2487 : /* GetException.proto */
2488 : #if CYTHON_FAST_THREAD_STATE
2489 : #define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb)
2490 : static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2491 : #else
2492 : static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb);
2493 : #endif
2494 :
2495 : /* SwapException.proto */
2496 : #if CYTHON_FAST_THREAD_STATE
2497 : #define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb)
2498 : static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb);
2499 : #else
2500 : static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb);
2501 : #endif
2502 :
2503 : /* Import.proto */
2504 : static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level);
2505 :
2506 : /* ImportDottedModule.proto */
2507 : static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple);
2508 : #if PY_MAJOR_VERSION >= 3
2509 : static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple);
2510 : #endif
2511 :
2512 : /* FastTypeChecks.proto */
2513 : #if CYTHON_COMPILING_IN_CPYTHON
2514 : #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type)
2515 : #define __Pyx_TypeCheck2(obj, type1, type2) __Pyx_IsAnySubtype2(Py_TYPE(obj), (PyTypeObject *)type1, (PyTypeObject *)type2)
2516 : static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b);
2517 : static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b);
2518 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type);
2519 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2);
2520 : #else
2521 : #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
2522 : #define __Pyx_TypeCheck2(obj, type1, type2) (PyObject_TypeCheck(obj, (PyTypeObject *)type1) || PyObject_TypeCheck(obj, (PyTypeObject *)type2))
2523 : #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type)
2524 : #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2))
2525 : #endif
2526 : #define __Pyx_PyErr_ExceptionMatches2(err1, err2) __Pyx_PyErr_GivenExceptionMatches2(__Pyx_PyErr_CurrentExceptionType(), err1, err2)
2527 : #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception)
2528 :
2529 : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
2530 : /* ListCompAppend.proto */
2531 : #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2532 0 : static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) {
2533 0 : PyListObject* L = (PyListObject*) list;
2534 0 : Py_ssize_t len = Py_SIZE(list);
2535 0 : if (likely(L->allocated > len)) {
2536 0 : Py_INCREF(x);
2537 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
2538 : L->ob_item[len] = x;
2539 : #else
2540 0 : PyList_SET_ITEM(list, len, x);
2541 : #endif
2542 0 : __Pyx_SET_SIZE(list, len + 1);
2543 0 : return 0;
2544 : }
2545 0 : return PyList_Append(list, x);
2546 : }
2547 : #else
2548 : #define __Pyx_ListComp_Append(L,x) PyList_Append(L,x)
2549 : #endif
2550 :
2551 : /* PySequenceMultiply.proto */
2552 : #define __Pyx_PySequence_Multiply_Left(mul, seq) __Pyx_PySequence_Multiply(seq, mul)
2553 : static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul);
2554 :
2555 : /* SetItemInt.proto */
2556 : #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\
2557 : (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\
2558 : __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\
2559 : (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\
2560 : __Pyx_SetItemInt_Generic(o, to_py_func(i), v)))
2561 : static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v);
2562 : static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v,
2563 : int is_list, int wraparound, int boundscheck);
2564 :
2565 : /* RaiseUnboundLocalError.proto */
2566 : static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
2567 :
2568 : /* DivInt[long].proto */
2569 : static CYTHON_INLINE long __Pyx_div_long(long, long);
2570 :
2571 : /* PySequenceContains.proto */
2572 0 : static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) {
2573 0 : int result = PySequence_Contains(seq, item);
2574 0 : return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
2575 : }
2576 :
2577 : /* ImportFrom.proto */
2578 : static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name);
2579 :
2580 : /* HasAttr.proto */
2581 : static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *);
2582 :
2583 : /* PyDictContains.proto */
2584 0 : static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) {
2585 0 : int result = PyDict_Contains(dict, item);
2586 0 : return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
2587 : }
2588 :
2589 : /* DictGetItem.proto */
2590 : #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
2591 : static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key);
2592 : #define __Pyx_PyObject_Dict_GetItem(obj, name)\
2593 : (likely(PyDict_CheckExact(obj)) ?\
2594 : __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name))
2595 : #else
2596 : #define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key)
2597 : #define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name)
2598 : #endif
2599 :
2600 : /* UnicodeAsUCS4.proto */
2601 : static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject*);
2602 :
2603 : /* object_ord.proto */
2604 : #if PY_MAJOR_VERSION >= 3
2605 : #define __Pyx_PyObject_Ord(c)\
2606 : (likely(PyUnicode_Check(c)) ? (long)__Pyx_PyUnicode_AsPy_UCS4(c) : __Pyx__PyObject_Ord(c))
2607 : #else
2608 : #define __Pyx_PyObject_Ord(c) __Pyx__PyObject_Ord(c)
2609 : #endif
2610 : static long __Pyx__PyObject_Ord(PyObject* c);
2611 :
2612 : /* memoryview_get_from_buffer.proto */
2613 : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
2614 : #define __Pyx_PyMemoryView_Get_itemsize(o) PyMemoryView_GET_BUFFER(o)->itemsize
2615 : #else
2616 : // can't get format like this unfortunately. It's unicode via getattr
2617 : static Py_ssize_t __Pyx_PyMemoryView_Get_itemsize(PyObject *obj);
2618 : #endif
2619 :
2620 : /* memoryview_get_from_buffer.proto */
2621 : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
2622 : #define __Pyx_PyMemoryView_Get_ndim(o) PyMemoryView_GET_BUFFER(o)->ndim
2623 : #else
2624 : // can't get format like this unfortunately. It's unicode via getattr
2625 : static int __Pyx_PyMemoryView_Get_ndim(PyObject *obj);
2626 : #endif
2627 :
2628 : /* IterFinish.proto */
2629 : static CYTHON_INLINE int __Pyx_IterFinish(void);
2630 :
2631 : /* PyObjectCallNoArg.proto */
2632 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func);
2633 :
2634 : /* PyObjectGetMethod.proto */
2635 : static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method);
2636 :
2637 : /* PyObjectCallMethod0.proto */
2638 : static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name);
2639 :
2640 : /* UnpackItemEndCheck.proto */
2641 : static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected);
2642 :
2643 : /* UnpackTupleError.proto */
2644 : static void __Pyx_UnpackTupleError(PyObject *, Py_ssize_t index);
2645 :
2646 : /* UnpackTuple2.proto */
2647 : #define __Pyx_unpack_tuple2(tuple, value1, value2, is_tuple, has_known_size, decref_tuple)\
2648 : (likely(is_tuple || PyTuple_Check(tuple)) ?\
2649 : (likely(has_known_size || PyTuple_GET_SIZE(tuple) == 2) ?\
2650 : __Pyx_unpack_tuple2_exact(tuple, value1, value2, decref_tuple) :\
2651 : (__Pyx_UnpackTupleError(tuple, 2), -1)) :\
2652 : __Pyx_unpack_tuple2_generic(tuple, value1, value2, has_known_size, decref_tuple))
2653 : static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
2654 : PyObject* tuple, PyObject** value1, PyObject** value2, int decref_tuple);
2655 : static int __Pyx_unpack_tuple2_generic(
2656 : PyObject* tuple, PyObject** value1, PyObject** value2, int has_known_size, int decref_tuple);
2657 :
2658 : /* dict_iter.proto */
2659 : static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* dict, int is_dict, PyObject* method_name,
2660 : Py_ssize_t* p_orig_length, int* p_is_dict);
2661 : static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* dict_or_iter, Py_ssize_t orig_length, Py_ssize_t* ppos,
2662 : PyObject** pkey, PyObject** pvalue, PyObject** pitem, int is_dict);
2663 :
2664 : /* ListExtend.proto */
2665 0 : static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) {
2666 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030d0000
2667 0 : PyObject* none = _PyList_Extend((PyListObject*)L, v);
2668 0 : if (unlikely(!none))
2669 : return -1;
2670 0 : Py_DECREF(none);
2671 : return 0;
2672 : #else
2673 : return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v);
2674 : #endif
2675 : }
2676 :
2677 : /* py_dict_values.proto */
2678 : static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d);
2679 :
2680 : /* UnpackUnboundCMethod.proto */
2681 : typedef struct {
2682 : PyObject *type;
2683 : PyObject **method_name;
2684 : PyCFunction func;
2685 : PyObject *method;
2686 : int flag;
2687 : } __Pyx_CachedCFunction;
2688 :
2689 : /* CallUnboundCMethod0.proto */
2690 : static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self);
2691 : #if CYTHON_COMPILING_IN_CPYTHON
2692 : #define __Pyx_CallUnboundCMethod0(cfunc, self)\
2693 : (likely((cfunc)->func) ?\
2694 : (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\
2695 : (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\
2696 : (PY_VERSION_HEX >= 0x030700A0 ?\
2697 : (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\
2698 : (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\
2699 : (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\
2700 : (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\
2701 : (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\
2702 : ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\
2703 : __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\
2704 : __Pyx__CallUnboundCMethod0(cfunc, self))
2705 : #else
2706 : #define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self)
2707 : #endif
2708 :
2709 : /* dict_getitem_default.proto */
2710 : static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value);
2711 :
2712 : /* CallUnboundCMethod1.proto */
2713 : static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
2714 : #if CYTHON_COMPILING_IN_CPYTHON
2715 : static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg);
2716 : #else
2717 : #define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg)
2718 : #endif
2719 :
2720 : /* CallUnboundCMethod2.proto */
2721 : static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2);
2722 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
2723 : static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2);
2724 : #else
2725 : #define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2)
2726 : #endif
2727 :
2728 : /* ListAppend.proto */
2729 : #if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS
2730 134 : static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
2731 134 : PyListObject* L = (PyListObject*) list;
2732 134 : Py_ssize_t len = Py_SIZE(list);
2733 134 : if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
2734 0 : Py_INCREF(x);
2735 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
2736 : L->ob_item[len] = x;
2737 : #else
2738 0 : PyList_SET_ITEM(list, len, x);
2739 : #endif
2740 0 : __Pyx_SET_SIZE(list, len + 1);
2741 0 : return 0;
2742 : }
2743 134 : return PyList_Append(list, x);
2744 : }
2745 : #else
2746 : #define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
2747 : #endif
2748 :
2749 : /* PyObject_GenericGetAttrNoDict.proto */
2750 : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2751 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name);
2752 : #else
2753 : #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr
2754 : #endif
2755 :
2756 : /* PyObject_GenericGetAttr.proto */
2757 : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
2758 : static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name);
2759 : #else
2760 : #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr
2761 : #endif
2762 :
2763 : /* IncludeStructmemberH.proto */
2764 : #include <structmember.h>
2765 :
2766 : /* FixUpExtensionType.proto */
2767 : #if CYTHON_USE_TYPE_SPECS
2768 : static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type);
2769 : #endif
2770 :
2771 : /* ValidateBasesTuple.proto */
2772 : #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
2773 : static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases);
2774 : #endif
2775 :
2776 : /* PyType_Ready.proto */
2777 : CYTHON_UNUSED static int __Pyx_PyType_Ready(PyTypeObject *t);
2778 :
2779 : /* SetVTable.proto */
2780 : static int __Pyx_SetVtable(PyTypeObject* typeptr , void* vtable);
2781 :
2782 : /* GetVTable.proto */
2783 : static void* __Pyx_GetVtable(PyTypeObject *type);
2784 :
2785 : /* MergeVTables.proto */
2786 : #if !CYTHON_COMPILING_IN_LIMITED_API
2787 : static int __Pyx_MergeVtables(PyTypeObject *type);
2788 : #endif
2789 :
2790 : /* SetupReduce.proto */
2791 : #if !CYTHON_COMPILING_IN_LIMITED_API
2792 : static int __Pyx_setup_reduce(PyObject* type_obj);
2793 : #endif
2794 :
2795 : /* TypeImport.proto */
2796 : #ifndef __PYX_HAVE_RT_ImportType_proto_3_0_11
2797 : #define __PYX_HAVE_RT_ImportType_proto_3_0_11
2798 : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
2799 : #include <stdalign.h>
2800 : #endif
2801 : #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) || __cplusplus >= 201103L
2802 : #define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) alignof(s)
2803 : #else
2804 : #define __PYX_GET_STRUCT_ALIGNMENT_3_0_11(s) sizeof(void*)
2805 : #endif
2806 : enum __Pyx_ImportType_CheckSize_3_0_11 {
2807 : __Pyx_ImportType_CheckSize_Error_3_0_11 = 0,
2808 : __Pyx_ImportType_CheckSize_Warn_3_0_11 = 1,
2809 : __Pyx_ImportType_CheckSize_Ignore_3_0_11 = 2
2810 : };
2811 : static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size);
2812 : #endif
2813 :
2814 : /* FetchSharedCythonModule.proto */
2815 : static PyObject *__Pyx_FetchSharedCythonABIModule(void);
2816 :
2817 : /* FetchCommonType.proto */
2818 : #if !CYTHON_USE_TYPE_SPECS
2819 : static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type);
2820 : #else
2821 : static PyTypeObject* __Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases);
2822 : #endif
2823 :
2824 : /* PyMethodNew.proto */
2825 : #if CYTHON_COMPILING_IN_LIMITED_API
2826 : static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
2827 : PyObject *typesModule=NULL, *methodType=NULL, *result=NULL;
2828 : CYTHON_UNUSED_VAR(typ);
2829 : if (!self)
2830 : return __Pyx_NewRef(func);
2831 : typesModule = PyImport_ImportModule("types");
2832 : if (!typesModule) return NULL;
2833 : methodType = PyObject_GetAttrString(typesModule, "MethodType");
2834 : Py_DECREF(typesModule);
2835 : if (!methodType) return NULL;
2836 : result = PyObject_CallFunctionObjArgs(methodType, func, self, NULL);
2837 : Py_DECREF(methodType);
2838 : return result;
2839 : }
2840 : #elif PY_MAJOR_VERSION >= 3
2841 0 : static PyObject *__Pyx_PyMethod_New(PyObject *func, PyObject *self, PyObject *typ) {
2842 0 : CYTHON_UNUSED_VAR(typ);
2843 0 : if (!self)
2844 0 : return __Pyx_NewRef(func);
2845 0 : return PyMethod_New(func, self);
2846 : }
2847 : #else
2848 : #define __Pyx_PyMethod_New PyMethod_New
2849 : #endif
2850 :
2851 : /* PyVectorcallFastCallDict.proto */
2852 : #if CYTHON_METH_FASTCALL
2853 : static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw);
2854 : #endif
2855 :
2856 : /* CythonFunctionShared.proto */
2857 : #define __Pyx_CyFunction_USED
2858 : #define __Pyx_CYFUNCTION_STATICMETHOD 0x01
2859 : #define __Pyx_CYFUNCTION_CLASSMETHOD 0x02
2860 : #define __Pyx_CYFUNCTION_CCLASS 0x04
2861 : #define __Pyx_CYFUNCTION_COROUTINE 0x08
2862 : #define __Pyx_CyFunction_GetClosure(f)\
2863 : (((__pyx_CyFunctionObject *) (f))->func_closure)
2864 : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
2865 : #define __Pyx_CyFunction_GetClassObj(f)\
2866 : (((__pyx_CyFunctionObject *) (f))->func_classobj)
2867 : #else
2868 : #define __Pyx_CyFunction_GetClassObj(f)\
2869 : ((PyObject*) ((PyCMethodObject *) (f))->mm_class)
2870 : #endif
2871 : #define __Pyx_CyFunction_SetClassObj(f, classobj)\
2872 : __Pyx__CyFunction_SetClassObj((__pyx_CyFunctionObject *) (f), (classobj))
2873 : #define __Pyx_CyFunction_Defaults(type, f)\
2874 : ((type *)(((__pyx_CyFunctionObject *) (f))->defaults))
2875 : #define __Pyx_CyFunction_SetDefaultsGetter(f, g)\
2876 : ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g)
2877 : typedef struct {
2878 : #if CYTHON_COMPILING_IN_LIMITED_API
2879 : PyObject_HEAD
2880 : PyObject *func;
2881 : #elif PY_VERSION_HEX < 0x030900B1
2882 : PyCFunctionObject func;
2883 : #else
2884 : PyCMethodObject func;
2885 : #endif
2886 : #if CYTHON_BACKPORT_VECTORCALL
2887 : __pyx_vectorcallfunc func_vectorcall;
2888 : #endif
2889 : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
2890 : PyObject *func_weakreflist;
2891 : #endif
2892 : PyObject *func_dict;
2893 : PyObject *func_name;
2894 : PyObject *func_qualname;
2895 : PyObject *func_doc;
2896 : PyObject *func_globals;
2897 : PyObject *func_code;
2898 : PyObject *func_closure;
2899 : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
2900 : PyObject *func_classobj;
2901 : #endif
2902 : void *defaults;
2903 : int defaults_pyobjects;
2904 : size_t defaults_size;
2905 : int flags;
2906 : PyObject *defaults_tuple;
2907 : PyObject *defaults_kwdict;
2908 : PyObject *(*defaults_getter)(PyObject *);
2909 : PyObject *func_annotations;
2910 : PyObject *func_is_coroutine;
2911 : } __pyx_CyFunctionObject;
2912 : #undef __Pyx_CyOrPyCFunction_Check
2913 : #define __Pyx_CyFunction_Check(obj) __Pyx_TypeCheck(obj, __pyx_CyFunctionType)
2914 : #define __Pyx_CyOrPyCFunction_Check(obj) __Pyx_TypeCheck2(obj, __pyx_CyFunctionType, &PyCFunction_Type)
2915 : #define __Pyx_CyFunction_CheckExact(obj) __Pyx_IS_TYPE(obj, __pyx_CyFunctionType)
2916 : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc);
2917 : #undef __Pyx_IsSameCFunction
2918 : #define __Pyx_IsSameCFunction(func, cfunc) __Pyx__IsSameCyOrCFunction(func, cfunc)
2919 : static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml,
2920 : int flags, PyObject* qualname,
2921 : PyObject *closure,
2922 : PyObject *module, PyObject *globals,
2923 : PyObject* code);
2924 : static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj);
2925 : static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m,
2926 : size_t size,
2927 : int pyobjects);
2928 : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m,
2929 : PyObject *tuple);
2930 : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m,
2931 : PyObject *dict);
2932 : static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m,
2933 : PyObject *dict);
2934 : static int __pyx_CyFunction_init(PyObject *module);
2935 : #if CYTHON_METH_FASTCALL
2936 : static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2937 : static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2938 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2939 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames);
2940 : #if CYTHON_BACKPORT_VECTORCALL
2941 : #define __Pyx_CyFunction_func_vectorcall(f) (((__pyx_CyFunctionObject*)f)->func_vectorcall)
2942 : #else
2943 : #define __Pyx_CyFunction_func_vectorcall(f) (((PyCFunctionObject*)f)->vectorcall)
2944 : #endif
2945 : #endif
2946 :
2947 : /* CythonFunction.proto */
2948 : static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml,
2949 : int flags, PyObject* qualname,
2950 : PyObject *closure,
2951 : PyObject *module, PyObject *globals,
2952 : PyObject* code);
2953 :
2954 : /* FusedFunction.proto */
2955 : typedef struct {
2956 : __pyx_CyFunctionObject func;
2957 : PyObject *__signatures__;
2958 : PyObject *self;
2959 : } __pyx_FusedFunctionObject;
2960 : static PyObject *__pyx_FusedFunction_New(PyMethodDef *ml, int flags,
2961 : PyObject *qualname, PyObject *closure,
2962 : PyObject *module, PyObject *globals,
2963 : PyObject *code);
2964 : static int __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self);
2965 : static int __pyx_FusedFunction_init(PyObject *module);
2966 : #define __Pyx_FusedFunction_USED
2967 :
2968 : /* CLineInTraceback.proto */
2969 : #ifdef CYTHON_CLINE_IN_TRACEBACK
2970 : #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0)
2971 : #else
2972 : static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line);
2973 : #endif
2974 :
2975 : /* CodeObjectCache.proto */
2976 : #if !CYTHON_COMPILING_IN_LIMITED_API
2977 : typedef struct {
2978 : PyCodeObject* code_object;
2979 : int code_line;
2980 : } __Pyx_CodeObjectCacheEntry;
2981 : struct __Pyx_CodeObjectCache {
2982 : int count;
2983 : int max_count;
2984 : __Pyx_CodeObjectCacheEntry* entries;
2985 : };
2986 : static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
2987 : static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
2988 : static PyCodeObject *__pyx_find_code_object(int code_line);
2989 : static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
2990 : #endif
2991 :
2992 : /* AddTraceback.proto */
2993 : static void __Pyx_AddTraceback(const char *funcname, int c_line,
2994 : int py_line, const char *filename);
2995 :
2996 : /* RealImag.proto */
2997 : #if CYTHON_CCOMPLEX
2998 : #ifdef __cplusplus
2999 : #define __Pyx_CREAL(z) ((z).real())
3000 : #define __Pyx_CIMAG(z) ((z).imag())
3001 : #else
3002 : #define __Pyx_CREAL(z) (__real__(z))
3003 : #define __Pyx_CIMAG(z) (__imag__(z))
3004 : #endif
3005 : #else
3006 : #define __Pyx_CREAL(z) ((z).real)
3007 : #define __Pyx_CIMAG(z) ((z).imag)
3008 : #endif
3009 : #if defined(__cplusplus) && CYTHON_CCOMPLEX\
3010 : && (defined(_WIN32) || defined(__clang__) || (defined(__GNUC__) && (__GNUC__ >= 5 || __GNUC__ == 4 && __GNUC_MINOR__ >= 4 )) || __cplusplus >= 201103)
3011 : #define __Pyx_SET_CREAL(z,x) ((z).real(x))
3012 : #define __Pyx_SET_CIMAG(z,y) ((z).imag(y))
3013 : #else
3014 : #define __Pyx_SET_CREAL(z,x) __Pyx_CREAL(z) = (x)
3015 : #define __Pyx_SET_CIMAG(z,y) __Pyx_CIMAG(z) = (y)
3016 : #endif
3017 :
3018 : /* Arithmetic.proto */
3019 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3020 : #define __Pyx_c_eq_float(a, b) ((a)==(b))
3021 : #define __Pyx_c_sum_float(a, b) ((a)+(b))
3022 : #define __Pyx_c_diff_float(a, b) ((a)-(b))
3023 : #define __Pyx_c_prod_float(a, b) ((a)*(b))
3024 : #define __Pyx_c_quot_float(a, b) ((a)/(b))
3025 : #define __Pyx_c_neg_float(a) (-(a))
3026 : #ifdef __cplusplus
3027 : #define __Pyx_c_is_zero_float(z) ((z)==(float)0)
3028 : #define __Pyx_c_conj_float(z) (::std::conj(z))
3029 : #if 1
3030 : #define __Pyx_c_abs_float(z) (::std::abs(z))
3031 : #define __Pyx_c_pow_float(a, b) (::std::pow(a, b))
3032 : #endif
3033 : #else
3034 : #define __Pyx_c_is_zero_float(z) ((z)==0)
3035 : #define __Pyx_c_conj_float(z) (conjf(z))
3036 : #if 1
3037 : #define __Pyx_c_abs_float(z) (cabsf(z))
3038 : #define __Pyx_c_pow_float(a, b) (cpowf(a, b))
3039 : #endif
3040 : #endif
3041 : #else
3042 : static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex, __pyx_t_float_complex);
3043 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex, __pyx_t_float_complex);
3044 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex, __pyx_t_float_complex);
3045 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex, __pyx_t_float_complex);
3046 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex, __pyx_t_float_complex);
3047 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex);
3048 : static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex);
3049 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex);
3050 : #if 1
3051 : static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex);
3052 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex, __pyx_t_float_complex);
3053 : #endif
3054 : #endif
3055 :
3056 : /* Arithmetic.proto */
3057 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3058 : #define __Pyx_c_eq_double(a, b) ((a)==(b))
3059 : #define __Pyx_c_sum_double(a, b) ((a)+(b))
3060 : #define __Pyx_c_diff_double(a, b) ((a)-(b))
3061 : #define __Pyx_c_prod_double(a, b) ((a)*(b))
3062 : #define __Pyx_c_quot_double(a, b) ((a)/(b))
3063 : #define __Pyx_c_neg_double(a) (-(a))
3064 : #ifdef __cplusplus
3065 : #define __Pyx_c_is_zero_double(z) ((z)==(double)0)
3066 : #define __Pyx_c_conj_double(z) (::std::conj(z))
3067 : #if 1
3068 : #define __Pyx_c_abs_double(z) (::std::abs(z))
3069 : #define __Pyx_c_pow_double(a, b) (::std::pow(a, b))
3070 : #endif
3071 : #else
3072 : #define __Pyx_c_is_zero_double(z) ((z)==0)
3073 : #define __Pyx_c_conj_double(z) (conj(z))
3074 : #if 1
3075 : #define __Pyx_c_abs_double(z) (cabs(z))
3076 : #define __Pyx_c_pow_double(a, b) (cpow(a, b))
3077 : #endif
3078 : #endif
3079 : #else
3080 : static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex, __pyx_t_double_complex);
3081 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex, __pyx_t_double_complex);
3082 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex, __pyx_t_double_complex);
3083 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex, __pyx_t_double_complex);
3084 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex, __pyx_t_double_complex);
3085 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex);
3086 : static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex);
3087 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex);
3088 : #if 1
3089 : static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex);
3090 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex, __pyx_t_double_complex);
3091 : #endif
3092 : #endif
3093 :
3094 : /* Arithmetic.proto */
3095 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
3096 : #define __Pyx_c_eq_long__double(a, b) ((a)==(b))
3097 : #define __Pyx_c_sum_long__double(a, b) ((a)+(b))
3098 : #define __Pyx_c_diff_long__double(a, b) ((a)-(b))
3099 : #define __Pyx_c_prod_long__double(a, b) ((a)*(b))
3100 : #define __Pyx_c_quot_long__double(a, b) ((a)/(b))
3101 : #define __Pyx_c_neg_long__double(a) (-(a))
3102 : #ifdef __cplusplus
3103 : #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0)
3104 : #define __Pyx_c_conj_long__double(z) (::std::conj(z))
3105 : #if 1
3106 : #define __Pyx_c_abs_long__double(z) (::std::abs(z))
3107 : #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b))
3108 : #endif
3109 : #else
3110 : #define __Pyx_c_is_zero_long__double(z) ((z)==0)
3111 : #define __Pyx_c_conj_long__double(z) (conjl(z))
3112 : #if 1
3113 : #define __Pyx_c_abs_long__double(z) (cabsl(z))
3114 : #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b))
3115 : #endif
3116 : #endif
3117 : #else
3118 : static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3119 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3120 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3121 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3122 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3123 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex);
3124 : static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex);
3125 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex);
3126 : #if 1
3127 : static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex);
3128 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex);
3129 : #endif
3130 : #endif
3131 :
3132 : #if PY_MAJOR_VERSION < 3
3133 : static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags);
3134 : static void __Pyx_ReleaseBuffer(Py_buffer *view);
3135 : #else
3136 : #define __Pyx_GetBuffer PyObject_GetBuffer
3137 : #define __Pyx_ReleaseBuffer PyBuffer_Release
3138 : #endif
3139 :
3140 :
3141 : /* BufferStructDeclare.proto */
3142 : typedef struct {
3143 : Py_ssize_t shape, strides, suboffsets;
3144 : } __Pyx_Buf_DimInfo;
3145 : typedef struct {
3146 : size_t refcount;
3147 : Py_buffer pybuffer;
3148 : } __Pyx_Buffer;
3149 : typedef struct {
3150 : __Pyx_Buffer *rcbuffer;
3151 : char *data;
3152 : __Pyx_Buf_DimInfo diminfo[8];
3153 : } __Pyx_LocalBuf_ND;
3154 :
3155 : /* MemviewSliceIsContig.proto */
3156 : static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim);
3157 :
3158 : /* OverlappingSlices.proto */
3159 : static int __pyx_slices_overlap(__Pyx_memviewslice *slice1,
3160 : __Pyx_memviewslice *slice2,
3161 : int ndim, size_t itemsize);
3162 :
3163 : /* IsLittleEndian.proto */
3164 : static CYTHON_INLINE int __Pyx_Is_Little_Endian(void);
3165 :
3166 : /* BufferFormatCheck.proto */
3167 : static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts);
3168 : static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
3169 : __Pyx_BufFmt_StackElem* stack,
3170 : __Pyx_TypeInfo* type);
3171 :
3172 : /* TypeInfoCompare.proto */
3173 : static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b);
3174 :
3175 : /* MemviewSliceValidateAndInit.proto */
3176 : static int __Pyx_ValidateAndInit_memviewslice(
3177 : int *axes_specs,
3178 : int c_or_f_flag,
3179 : int buf_flags,
3180 : int ndim,
3181 : __Pyx_TypeInfo *dtype,
3182 : __Pyx_BufFmt_StackElem stack[],
3183 : __Pyx_memviewslice *memviewslice,
3184 : PyObject *original_obj);
3185 :
3186 : /* ObjectToMemviewSlice.proto */
3187 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_float(PyObject *, int writable_flag);
3188 :
3189 : /* ObjectToMemviewSlice.proto */
3190 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_float_complex(PyObject *, int writable_flag);
3191 :
3192 : /* ObjectToMemviewSlice.proto */
3193 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(PyObject *, int writable_flag);
3194 :
3195 : /* ObjectToMemviewSlice.proto */
3196 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(PyObject *, int writable_flag);
3197 :
3198 : /* ObjectToMemviewSlice.proto */
3199 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_long__double(PyObject *, int writable_flag);
3200 :
3201 : /* ObjectToMemviewSlice.proto */
3202 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_long_double_complex(PyObject *, int writable_flag);
3203 :
3204 : /* ObjectToMemviewSlice.proto */
3205 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(PyObject *, int writable_flag);
3206 :
3207 : /* ObjectToMemviewSlice.proto */
3208 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_object(PyObject *, int writable_flag);
3209 :
3210 : /* ObjectToMemviewSlice.proto */
3211 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(PyObject *, int writable_flag);
3212 :
3213 : /* ObjectToMemviewSlice.proto */
3214 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_float_complex(PyObject *, int writable_flag);
3215 :
3216 : /* ObjectToMemviewSlice.proto */
3217 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(PyObject *, int writable_flag);
3218 :
3219 : /* ObjectToMemviewSlice.proto */
3220 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_double_complex(PyObject *, int writable_flag);
3221 :
3222 : /* ObjectToMemviewSlice.proto */
3223 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_long__double(PyObject *, int writable_flag);
3224 :
3225 : /* ObjectToMemviewSlice.proto */
3226 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_long_double_complex(PyObject *, int writable_flag);
3227 :
3228 : /* PyUCS4InUnicode.proto */
3229 : static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character);
3230 :
3231 : /* MemviewObjectToObject.proto */
3232 : static PyObject *__pyx_memview_get_object(const char *itemp);
3233 : static int __pyx_memview_set_object(const char *itemp, PyObject *obj);
3234 :
3235 : /* MemviewSliceCopyTemplate.proto */
3236 : static __Pyx_memviewslice
3237 : __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
3238 : const char *mode, int ndim,
3239 : size_t sizeof_dtype, int contig_flag,
3240 : int dtype_is_object);
3241 :
3242 : /* MemviewSliceInit.proto */
3243 : #define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d
3244 : #define __Pyx_MEMVIEW_DIRECT 1
3245 : #define __Pyx_MEMVIEW_PTR 2
3246 : #define __Pyx_MEMVIEW_FULL 4
3247 : #define __Pyx_MEMVIEW_CONTIG 8
3248 : #define __Pyx_MEMVIEW_STRIDED 16
3249 : #define __Pyx_MEMVIEW_FOLLOW 32
3250 : #define __Pyx_IS_C_CONTIG 1
3251 : #define __Pyx_IS_F_CONTIG 2
3252 : static int __Pyx_init_memviewslice(
3253 : struct __pyx_memoryview_obj *memview,
3254 : int ndim,
3255 : __Pyx_memviewslice *memviewslice,
3256 : int memview_is_new_reference);
3257 : static CYTHON_INLINE int __pyx_add_acquisition_count_locked(
3258 : __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
3259 : static CYTHON_INLINE int __pyx_sub_acquisition_count_locked(
3260 : __pyx_atomic_int_type *acquisition_count, PyThread_type_lock lock);
3261 : #define __pyx_get_slice_count_pointer(memview) (&memview->acquisition_count)
3262 : #define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__)
3263 : #define __PYX_XCLEAR_MEMVIEW(slice, have_gil) __Pyx_XCLEAR_MEMVIEW(slice, have_gil, __LINE__)
3264 : static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int);
3265 : static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *, int, int);
3266 :
3267 : /* CIntToPy.proto */
3268 : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
3269 :
3270 : /* ImportNumPyArray.proto */
3271 : static PyObject *__pyx_numpy_ndarray = NULL;
3272 : static PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void);
3273 :
3274 : /* CIntFromPy.proto */
3275 : static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
3276 :
3277 : /* CIntFromPy.proto */
3278 : static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
3279 :
3280 : /* CIntToPy.proto */
3281 : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
3282 :
3283 : /* CIntFromPy.proto */
3284 : static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *);
3285 :
3286 : /* FormatTypeName.proto */
3287 : #if CYTHON_COMPILING_IN_LIMITED_API
3288 : typedef PyObject *__Pyx_TypeName;
3289 : #define __Pyx_FMT_TYPENAME "%U"
3290 : static __Pyx_TypeName __Pyx_PyType_GetName(PyTypeObject* tp);
3291 : #define __Pyx_DECREF_TypeName(obj) Py_XDECREF(obj)
3292 : #else
3293 : typedef const char *__Pyx_TypeName;
3294 : #define __Pyx_FMT_TYPENAME "%.200s"
3295 : #define __Pyx_PyType_GetName(tp) ((tp)->tp_name)
3296 : #define __Pyx_DECREF_TypeName(obj)
3297 : #endif
3298 :
3299 : /* CheckBinaryVersion.proto */
3300 : static unsigned long __Pyx_get_runtime_version(void);
3301 : static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer);
3302 :
3303 : /* InitStrings.proto */
3304 : static int __Pyx_InitStrings(__Pyx_StringTabEntry *t);
3305 :
3306 : /* #### Code section: module_declarations ### */
3307 : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/
3308 : static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/
3309 : static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/
3310 : static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/
3311 : static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/
3312 : static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/
3313 : static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
3314 : static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
3315 : static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self); /* proto*/
3316 : static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/
3317 : static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/
3318 : static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto*/
3319 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/
3320 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/
3321 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/
3322 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self); /* proto*/
3323 : static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self); /* proto*/
3324 : static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self); /* proto*/
3325 : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3326 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3327 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3328 : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3329 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3330 : static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self); /* proto*/
3331 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/
3332 : static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/
3333 : static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/
3334 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self); /* proto*/
3335 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self); /* proto*/
3336 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self); /* proto*/
3337 : static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self); /* proto*/
3338 :
3339 : /* Module declarations from "libc.string" */
3340 :
3341 : /* Module declarations from "libc.stdio" */
3342 :
3343 : /* Module declarations from "__builtin__" */
3344 :
3345 : /* Module declarations from "cpython.type" */
3346 :
3347 : /* Module declarations from "cpython" */
3348 :
3349 : /* Module declarations from "cpython.object" */
3350 :
3351 : /* Module declarations from "cpython.ref" */
3352 :
3353 : /* Module declarations from "numpy" */
3354 :
3355 : /* Module declarations from "numpy" */
3356 : static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/
3357 :
3358 : /* Module declarations from "cython.view" */
3359 :
3360 : /* Module declarations from "cython.dataclasses" */
3361 :
3362 : /* Module declarations from "cython" */
3363 :
3364 : /* Module declarations from "scipy.signal._sosfilt" */
3365 : static PyObject *__pyx_collections_abc_Sequence = 0;
3366 : static PyObject *generic = 0;
3367 : static PyObject *strided = 0;
3368 : static PyObject *indirect = 0;
3369 : static PyObject *contiguous = 0;
3370 : static PyObject *indirect_contiguous = 0;
3371 : static int __pyx_memoryview_thread_locks_used;
3372 : static PyThread_type_lock __pyx_memoryview_thread_locks[8];
3373 : static void __pyx_fuse_0__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3374 : static void __pyx_fuse_1__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3375 : static void __pyx_fuse_2__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3376 : static void __pyx_fuse_3__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3377 : static void __pyx_fuse_4__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3378 : static void __pyx_fuse_5__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice, __Pyx_memviewslice, __Pyx_memviewslice); /*proto*/
3379 : static int __pyx_array_allocate_buffer(struct __pyx_array_obj *); /*proto*/
3380 : static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/
3381 : static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/
3382 : static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/
3383 : static PyObject *_unellipsify(PyObject *, int); /*proto*/
3384 : static int assert_direct_dimensions(Py_ssize_t *, int); /*proto*/
3385 : static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/
3386 : static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/
3387 : static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/
3388 : static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/
3389 : static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/
3390 : static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3391 : static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3392 : static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/
3393 : static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/
3394 : static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/
3395 : static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/
3396 : static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/
3397 : static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/
3398 : static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/
3399 : static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/
3400 : static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/
3401 : static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/
3402 : static int __pyx_memoryview_err_dim(PyObject *, PyObject *, int); /*proto*/
3403 : static int __pyx_memoryview_err(PyObject *, PyObject *); /*proto*/
3404 : static int __pyx_memoryview_err_no_memory(void); /*proto*/
3405 : static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/
3406 : static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/
3407 : static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/
3408 : static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
3409 : static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/
3410 : static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/
3411 : static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/
3412 : static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/
3413 : /* #### Code section: typeinfo ### */
3414 : static __Pyx_TypeInfo __Pyx_TypeInfo_float = { "float", NULL, sizeof(float), { 0 }, 0, 'R', 0, 0 };
3415 : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_float_complex = { "float complex", NULL, sizeof(__pyx_t_float_complex), { 0 }, 0, 'C', 0, 0 };
3416 : static __Pyx_TypeInfo __Pyx_TypeInfo_double = { "double", NULL, sizeof(double), { 0 }, 0, 'R', 0, 0 };
3417 : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_double_complex = { "double complex", NULL, sizeof(__pyx_t_double_complex), { 0 }, 0, 'C', 0, 0 };
3418 : static __Pyx_TypeInfo __Pyx_TypeInfo_long__double = { "long double", NULL, sizeof(long double), { 0 }, 0, 'R', 0, 0 };
3419 : static __Pyx_TypeInfo __Pyx_TypeInfo___pyx_t_long_double_complex = { "long double complex", NULL, sizeof(__pyx_t_long_double_complex), { 0 }, 0, 'C', 0, 0 };
3420 : static __Pyx_TypeInfo __Pyx_TypeInfo_object = { "Python object", NULL, sizeof(PyObject *), { 0 }, 0, 'O', 0, 0 };
3421 : /* #### Code section: before_global_var ### */
3422 : #define __Pyx_MODULE_NAME "scipy.signal._sosfilt"
3423 : extern int __pyx_module_is_main_scipy__signal___sosfilt;
3424 : int __pyx_module_is_main_scipy__signal___sosfilt = 0;
3425 :
3426 : /* Implementation of "scipy.signal._sosfilt" */
3427 : /* #### Code section: global_var ### */
3428 : static PyObject *__pyx_builtin_xrange;
3429 : static PyObject *__pyx_builtin_TypeError;
3430 : static PyObject *__pyx_builtin_ValueError;
3431 : static PyObject *__pyx_builtin___import__;
3432 : static PyObject *__pyx_builtin_MemoryError;
3433 : static PyObject *__pyx_builtin_enumerate;
3434 : static PyObject *__pyx_builtin_range;
3435 : static PyObject *__pyx_builtin_AssertionError;
3436 : static PyObject *__pyx_builtin_Ellipsis;
3437 : static PyObject *__pyx_builtin_id;
3438 : static PyObject *__pyx_builtin_IndexError;
3439 : static PyObject *__pyx_builtin_ImportError;
3440 : /* #### Code section: string_decls ### */
3441 : static const char __pyx_k_[] = ": ";
3442 : static const char __pyx_k_O[] = "O";
3443 : static const char __pyx_k_c[] = "c";
3444 : static const char __pyx_k_i[] = "i";
3445 : static const char __pyx_k_n[] = "n";
3446 : static const char __pyx_k_s[] = "s";
3447 : static const char __pyx_k_x[] = "x";
3448 : static const char __pyx_k__2[] = ".";
3449 : static const char __pyx_k__3[] = "*";
3450 : static const char __pyx_k__6[] = "'";
3451 : static const char __pyx_k__7[] = ")";
3452 : static const char __pyx_k_gc[] = "gc";
3453 : static const char __pyx_k_id[] = "id";
3454 : static const char __pyx_k_zi[] = "zi";
3455 : static const char __pyx_k__11[] = "()";
3456 : static const char __pyx_k__12[] = "|";
3457 : static const char __pyx_k__30[] = "?";
3458 : static const char __pyx_k_abc[] = "abc";
3459 : static const char __pyx_k_and[] = " and ";
3460 : static const char __pyx_k_get[] = "get";
3461 : static const char __pyx_k_got[] = " (got ";
3462 : static const char __pyx_k_new[] = "__new__";
3463 : static const char __pyx_k_obj[] = "obj";
3464 : static const char __pyx_k_sos[] = "sos";
3465 : static const char __pyx_k_sys[] = "sys";
3466 : static const char __pyx_k_x_n[] = "x_n";
3467 : static const char __pyx_k_args[] = "args";
3468 : static const char __pyx_k_base[] = "base";
3469 : static const char __pyx_k_dict[] = "__dict__";
3470 : static const char __pyx_k_kind[] = "kind";
3471 : static const char __pyx_k_main[] = "__main__";
3472 : static const char __pyx_k_mode[] = "mode";
3473 : static const char __pyx_k_name[] = "name";
3474 : static const char __pyx_k_ndim[] = "ndim";
3475 : static const char __pyx_k_pack[] = "pack";
3476 : static const char __pyx_k_size[] = "size";
3477 : static const char __pyx_k_spec[] = "__spec__";
3478 : static const char __pyx_k_step[] = "step";
3479 : static const char __pyx_k_stop[] = "stop";
3480 : static const char __pyx_k_test[] = "__test__";
3481 : static const char __pyx_k_ASCII[] = "ASCII";
3482 : static const char __pyx_k_class[] = "__class__";
3483 : static const char __pyx_k_count[] = "count";
3484 : static const char __pyx_k_dtype[] = "dtype";
3485 : static const char __pyx_k_error[] = "error";
3486 : static const char __pyx_k_flags[] = "flags";
3487 : static const char __pyx_k_float[] = "float";
3488 : static const char __pyx_k_index[] = "index";
3489 : static const char __pyx_k_numpy[] = "numpy";
3490 : static const char __pyx_k_range[] = "range";
3491 : static const char __pyx_k_shape[] = "shape";
3492 : static const char __pyx_k_split[] = "split";
3493 : static const char __pyx_k_start[] = "start";
3494 : static const char __pyx_k_strip[] = "strip";
3495 : static const char __pyx_k_double[] = "double";
3496 : static const char __pyx_k_enable[] = "enable";
3497 : static const char __pyx_k_encode[] = "encode";
3498 : static const char __pyx_k_format[] = "format";
3499 : static const char __pyx_k_import[] = "__import__";
3500 : static const char __pyx_k_kwargs[] = "kwargs";
3501 : static const char __pyx_k_name_2[] = "__name__";
3502 : static const char __pyx_k_object[] = "object";
3503 : static const char __pyx_k_pickle[] = "pickle";
3504 : static const char __pyx_k_reduce[] = "__reduce__";
3505 : static const char __pyx_k_struct[] = "struct";
3506 : static const char __pyx_k_unpack[] = "unpack";
3507 : static const char __pyx_k_update[] = "update";
3508 : static const char __pyx_k_values[] = "values";
3509 : static const char __pyx_k_xrange[] = "xrange";
3510 : static const char __pyx_k_disable[] = "disable";
3511 : static const char __pyx_k_fortran[] = "fortran";
3512 : static const char __pyx_k_memview[] = "memview";
3513 : static const char __pyx_k_sosfilt[] = "_sosfilt";
3514 : static const char __pyx_k_Ellipsis[] = "Ellipsis";
3515 : static const char __pyx_k_Sequence[] = "Sequence";
3516 : static const char __pyx_k_defaults[] = "defaults";
3517 : static const char __pyx_k_getstate[] = "__getstate__";
3518 : static const char __pyx_k_itemsize[] = "itemsize";
3519 : static const char __pyx_k_pyx_type[] = "__pyx_type";
3520 : static const char __pyx_k_register[] = "register";
3521 : static const char __pyx_k_setstate[] = "__setstate__";
3522 : static const char __pyx_k_TypeError[] = "TypeError";
3523 : static const char __pyx_k_enumerate[] = "enumerate";
3524 : static const char __pyx_k_isenabled[] = "isenabled";
3525 : static const char __pyx_k_n_samples[] = "n_samples";
3526 : static const char __pyx_k_n_signals[] = "n_signals";
3527 : static const char __pyx_k_pyx_state[] = "__pyx_state";
3528 : static const char __pyx_k_reduce_ex[] = "__reduce_ex__";
3529 : static const char __pyx_k_IndexError[] = "IndexError";
3530 : static const char __pyx_k_ValueError[] = "ValueError";
3531 : static const char __pyx_k_n_sections[] = "n_sections";
3532 : static const char __pyx_k_pyx_result[] = "__pyx_result";
3533 : static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
3534 : static const char __pyx_k_signatures[] = "signatures";
3535 : static const char __pyx_k_ImportError[] = "ImportError";
3536 : static const char __pyx_k_MemoryError[] = "MemoryError";
3537 : static const char __pyx_k_PickleError[] = "PickleError";
3538 : static const char __pyx_k_collections[] = "collections";
3539 : static const char __pyx_k_long_double[] = "long double";
3540 : static const char __pyx_k_initializing[] = "_initializing";
3541 : static const char __pyx_k_is_coroutine[] = "_is_coroutine";
3542 : static const char __pyx_k_pyx_checksum[] = "__pyx_checksum";
3543 : static const char __pyx_k_stringsource[] = "<stringsource>";
3544 : static const char __pyx_k_version_info[] = "version_info";
3545 : static const char __pyx_k_class_getitem[] = "__class_getitem__";
3546 : static const char __pyx_k_float_complex[] = "float complex";
3547 : static const char __pyx_k_reduce_cython[] = "__reduce_cython__";
3548 : static const char __pyx_k_AssertionError[] = "AssertionError";
3549 : static const char __pyx_k_double_complex[] = "double complex";
3550 : static const char __pyx_k_fused_sigindex[] = "_fused_sigindex";
3551 : static const char __pyx_k_sosfilt_object[] = "_sosfilt_object";
3552 : static const char __pyx_k_View_MemoryView[] = "View.MemoryView";
3553 : static const char __pyx_k_allocate_buffer[] = "allocate_buffer";
3554 : static const char __pyx_k_collections_abc[] = "collections.abc";
3555 : static const char __pyx_k_dtype_is_object[] = "dtype_is_object";
3556 : static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError";
3557 : static const char __pyx_k_setstate_cython[] = "__setstate_cython__";
3558 : static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum";
3559 : static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines";
3560 : static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback";
3561 : static const char __pyx_k_strided_and_direct[] = "<strided and direct>";
3562 : static const char __pyx_k_long_double_complex[] = "long double complex";
3563 : static const char __pyx_k_strided_and_indirect[] = "<strided and indirect>";
3564 : static const char __pyx_k_Invalid_shape_in_axis[] = "Invalid shape in axis ";
3565 : static const char __pyx_k_contiguous_and_direct[] = "<contiguous and direct>";
3566 : static const char __pyx_k_scipy_signal__sosfilt[] = "scipy.signal._sosfilt";
3567 : static const char __pyx_k_Cannot_index_with_type[] = "Cannot index with type '";
3568 : static const char __pyx_k_MemoryView_of_r_object[] = "<MemoryView of %r object>";
3569 : static const char __pyx_k_MemoryView_of_r_at_0x_x[] = "<MemoryView of %r at 0x%x>";
3570 : static const char __pyx_k_contiguous_and_indirect[] = "<contiguous and indirect>";
3571 : static const char __pyx_k_Dimension_d_is_not_direct[] = "Dimension %d is not direct";
3572 : static const char __pyx_k_Index_out_of_bounds_axis_d[] = "Index out of bounds (axis %d)";
3573 : static const char __pyx_k_No_matching_signature_found[] = "No matching signature found";
3574 : static const char __pyx_k_Step_may_not_be_zero_axis_d[] = "Step may not be zero (axis %d)";
3575 : static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array";
3576 : static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data.";
3577 : static const char __pyx_k_strided_and_direct_or_indirect[] = "<strided and direct or indirect>";
3578 : static const char __pyx_k_home_czgdp18079_Quansight_scipy[] = "/home/czgdp18079/Quansight/scipy/scipy/signal/_sosfilt.pyx";
3579 : static const char __pyx_k_All_dimensions_preceding_dimensi[] = "All dimensions preceding dimension %d must be indexed and not sliced";
3580 : static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides";
3581 : static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory.";
3582 : static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview";
3583 : static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview";
3584 : static const char __pyx_k_Cannot_transpose_memoryview_with[] = "Cannot transpose memoryview with indirect dimensions";
3585 : static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array";
3586 : static const char __pyx_k_Expected_at_least_d_argument_s_g[] = "Expected at least %d argument%s, got %d";
3587 : static const char __pyx_k_Function_call_with_ambiguous_arg[] = "Function call with ambiguous argument types";
3588 : static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))";
3589 : static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported";
3590 : static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got ";
3591 : static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis ";
3592 : static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object";
3593 : static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension ";
3594 : static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__";
3595 : static const char __pyx_k_numpy__core_multiarray_failed_to[] = "numpy._core.multiarray failed to import";
3596 : static const char __pyx_k_numpy__core_umath_failed_to_impo[] = "numpy._core.umath failed to import";
3597 : static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides.";
3598 : /* #### Code section: decls ### */
3599 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */
3600 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
3601 : static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */
3602 : static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */
3603 : static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */
3604 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */
3605 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */
3606 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */
3607 : static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */
3608 : static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3609 : static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */
3610 : static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
3611 : static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */
3612 : static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */
3613 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */
3614 : static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3615 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */
3616 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */
3617 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */
3618 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3619 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3620 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3621 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3622 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3623 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3624 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3625 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3626 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3627 : static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3628 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3629 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3630 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3631 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3632 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3633 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3634 : static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */
3635 : static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3636 : static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
3637 : static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */
3638 : static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */
3639 : static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */
3640 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt__sosfilt_object(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3641 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_2_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex); /* proto */
3642 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_4_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3643 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_6_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3644 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_8_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3645 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_10_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3646 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_12_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3647 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_14_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3648 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_16_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi); /* proto */
3649 : static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3650 : static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3651 : static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3652 : static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
3653 : static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, 0, 0, 0, 0};
3654 : static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_values = {0, 0, 0, 0, 0};
3655 : /* #### Code section: late_includes ### */
3656 : /* #### Code section: module_state ### */
3657 : typedef struct {
3658 : PyObject *__pyx_d;
3659 : PyObject *__pyx_b;
3660 : PyObject *__pyx_cython_runtime;
3661 : PyObject *__pyx_empty_tuple;
3662 : PyObject *__pyx_empty_bytes;
3663 : PyObject *__pyx_empty_unicode;
3664 : #ifdef __Pyx_CyFunction_USED
3665 : PyTypeObject *__pyx_CyFunctionType;
3666 : #endif
3667 : #ifdef __Pyx_FusedFunction_USED
3668 : PyTypeObject *__pyx_FusedFunctionType;
3669 : #endif
3670 : #ifdef __Pyx_Generator_USED
3671 : PyTypeObject *__pyx_GeneratorType;
3672 : #endif
3673 : #ifdef __Pyx_IterableCoroutine_USED
3674 : PyTypeObject *__pyx_IterableCoroutineType;
3675 : #endif
3676 : #ifdef __Pyx_Coroutine_USED
3677 : PyTypeObject *__pyx_CoroutineAwaitType;
3678 : #endif
3679 : #ifdef __Pyx_Coroutine_USED
3680 : PyTypeObject *__pyx_CoroutineType;
3681 : #endif
3682 : #if CYTHON_USE_MODULE_STATE
3683 : #endif
3684 : #if CYTHON_USE_MODULE_STATE
3685 : #endif
3686 : #if CYTHON_USE_MODULE_STATE
3687 : #endif
3688 : #if CYTHON_USE_MODULE_STATE
3689 : #endif
3690 : PyTypeObject *__pyx_ptype_7cpython_4type_type;
3691 : #if CYTHON_USE_MODULE_STATE
3692 : #endif
3693 : #if CYTHON_USE_MODULE_STATE
3694 : #endif
3695 : #if CYTHON_USE_MODULE_STATE
3696 : #endif
3697 : #if CYTHON_USE_MODULE_STATE
3698 : #endif
3699 : #if CYTHON_USE_MODULE_STATE
3700 : #endif
3701 : PyTypeObject *__pyx_ptype_5numpy_dtype;
3702 : PyTypeObject *__pyx_ptype_5numpy_flatiter;
3703 : PyTypeObject *__pyx_ptype_5numpy_broadcast;
3704 : PyTypeObject *__pyx_ptype_5numpy_ndarray;
3705 : PyTypeObject *__pyx_ptype_5numpy_generic;
3706 : PyTypeObject *__pyx_ptype_5numpy_number;
3707 : PyTypeObject *__pyx_ptype_5numpy_integer;
3708 : PyTypeObject *__pyx_ptype_5numpy_signedinteger;
3709 : PyTypeObject *__pyx_ptype_5numpy_unsignedinteger;
3710 : PyTypeObject *__pyx_ptype_5numpy_inexact;
3711 : PyTypeObject *__pyx_ptype_5numpy_floating;
3712 : PyTypeObject *__pyx_ptype_5numpy_complexfloating;
3713 : PyTypeObject *__pyx_ptype_5numpy_flexible;
3714 : PyTypeObject *__pyx_ptype_5numpy_character;
3715 : PyTypeObject *__pyx_ptype_5numpy_ufunc;
3716 : #if CYTHON_USE_MODULE_STATE
3717 : #endif
3718 : #if CYTHON_USE_MODULE_STATE
3719 : #endif
3720 : #if CYTHON_USE_MODULE_STATE
3721 : #endif
3722 : #if CYTHON_USE_MODULE_STATE
3723 : PyObject *__pyx_type___pyx_array;
3724 : PyObject *__pyx_type___pyx_MemviewEnum;
3725 : PyObject *__pyx_type___pyx_memoryview;
3726 : PyObject *__pyx_type___pyx_memoryviewslice;
3727 : #endif
3728 : PyTypeObject *__pyx_array_type;
3729 : PyTypeObject *__pyx_MemviewEnum_type;
3730 : PyTypeObject *__pyx_memoryview_type;
3731 : PyTypeObject *__pyx_memoryviewslice_type;
3732 : PyObject *__pyx_kp_u_;
3733 : PyObject *__pyx_n_s_ASCII;
3734 : PyObject *__pyx_kp_s_All_dimensions_preceding_dimensi;
3735 : PyObject *__pyx_n_s_AssertionError;
3736 : PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri;
3737 : PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is;
3738 : PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor;
3739 : PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi;
3740 : PyObject *__pyx_kp_u_Cannot_index_with_type;
3741 : PyObject *__pyx_kp_s_Cannot_transpose_memoryview_with;
3742 : PyObject *__pyx_kp_s_Dimension_d_is_not_direct;
3743 : PyObject *__pyx_n_s_Ellipsis;
3744 : PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr;
3745 : PyObject *__pyx_kp_s_Expected_at_least_d_argument_s_g;
3746 : PyObject *__pyx_kp_s_Function_call_with_ambiguous_arg;
3747 : PyObject *__pyx_n_s_ImportError;
3748 : PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0;
3749 : PyObject *__pyx_n_s_IndexError;
3750 : PyObject *__pyx_kp_s_Index_out_of_bounds_axis_d;
3751 : PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte;
3752 : PyObject *__pyx_kp_u_Invalid_mode_expected_c_or_fortr;
3753 : PyObject *__pyx_kp_u_Invalid_shape_in_axis;
3754 : PyObject *__pyx_n_s_MemoryError;
3755 : PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x;
3756 : PyObject *__pyx_kp_s_MemoryView_of_r_object;
3757 : PyObject *__pyx_kp_s_No_matching_signature_found;
3758 : PyObject *__pyx_n_b_O;
3759 : PyObject *__pyx_kp_u_Out_of_bounds_on_buffer_access_a;
3760 : PyObject *__pyx_n_s_PickleError;
3761 : PyObject *__pyx_n_s_Sequence;
3762 : PyObject *__pyx_kp_s_Step_may_not_be_zero_axis_d;
3763 : PyObject *__pyx_n_s_TypeError;
3764 : PyObject *__pyx_kp_s_Unable_to_convert_item_to_object;
3765 : PyObject *__pyx_n_s_ValueError;
3766 : PyObject *__pyx_n_s_View_MemoryView;
3767 : PyObject *__pyx_kp_s__11;
3768 : PyObject *__pyx_kp_s__12;
3769 : PyObject *__pyx_kp_u__12;
3770 : PyObject *__pyx_kp_u__2;
3771 : PyObject *__pyx_n_s__3;
3772 : PyObject *__pyx_n_s__30;
3773 : PyObject *__pyx_kp_u__6;
3774 : PyObject *__pyx_kp_u__7;
3775 : PyObject *__pyx_n_s_abc;
3776 : PyObject *__pyx_n_s_allocate_buffer;
3777 : PyObject *__pyx_kp_u_and;
3778 : PyObject *__pyx_n_s_args;
3779 : PyObject *__pyx_n_s_asyncio_coroutines;
3780 : PyObject *__pyx_n_s_base;
3781 : PyObject *__pyx_n_s_c;
3782 : PyObject *__pyx_n_u_c;
3783 : PyObject *__pyx_n_s_class;
3784 : PyObject *__pyx_n_s_class_getitem;
3785 : PyObject *__pyx_n_s_cline_in_traceback;
3786 : PyObject *__pyx_n_s_collections;
3787 : PyObject *__pyx_kp_s_collections_abc;
3788 : PyObject *__pyx_kp_s_contiguous_and_direct;
3789 : PyObject *__pyx_kp_s_contiguous_and_indirect;
3790 : PyObject *__pyx_n_s_count;
3791 : PyObject *__pyx_n_s_defaults;
3792 : PyObject *__pyx_n_s_dict;
3793 : PyObject *__pyx_kp_u_disable;
3794 : PyObject *__pyx_n_s_double;
3795 : PyObject *__pyx_kp_s_double_complex;
3796 : PyObject *__pyx_n_s_dtype;
3797 : PyObject *__pyx_n_s_dtype_is_object;
3798 : PyObject *__pyx_kp_u_enable;
3799 : PyObject *__pyx_n_s_encode;
3800 : PyObject *__pyx_n_s_enumerate;
3801 : PyObject *__pyx_n_s_error;
3802 : PyObject *__pyx_n_s_flags;
3803 : PyObject *__pyx_n_s_float;
3804 : PyObject *__pyx_kp_s_float_complex;
3805 : PyObject *__pyx_n_s_format;
3806 : PyObject *__pyx_n_s_fortran;
3807 : PyObject *__pyx_n_u_fortran;
3808 : PyObject *__pyx_n_s_fused_sigindex;
3809 : PyObject *__pyx_kp_u_gc;
3810 : PyObject *__pyx_n_s_get;
3811 : PyObject *__pyx_n_s_getstate;
3812 : PyObject *__pyx_kp_u_got;
3813 : PyObject *__pyx_kp_u_got_differing_extents_in_dimensi;
3814 : PyObject *__pyx_kp_s_home_czgdp18079_Quansight_scipy;
3815 : PyObject *__pyx_n_s_i;
3816 : PyObject *__pyx_n_s_id;
3817 : PyObject *__pyx_n_s_import;
3818 : PyObject *__pyx_n_s_index;
3819 : PyObject *__pyx_n_s_initializing;
3820 : PyObject *__pyx_n_s_is_coroutine;
3821 : PyObject *__pyx_kp_u_isenabled;
3822 : PyObject *__pyx_n_s_itemsize;
3823 : PyObject *__pyx_kp_s_itemsize_0_for_cython_array;
3824 : PyObject *__pyx_n_s_kind;
3825 : PyObject *__pyx_n_s_kwargs;
3826 : PyObject *__pyx_kp_s_long_double;
3827 : PyObject *__pyx_kp_s_long_double_complex;
3828 : PyObject *__pyx_n_s_main;
3829 : PyObject *__pyx_n_s_memview;
3830 : PyObject *__pyx_n_s_mode;
3831 : PyObject *__pyx_n_s_n;
3832 : PyObject *__pyx_n_s_n_samples;
3833 : PyObject *__pyx_n_s_n_sections;
3834 : PyObject *__pyx_n_s_n_signals;
3835 : PyObject *__pyx_n_s_name;
3836 : PyObject *__pyx_n_s_name_2;
3837 : PyObject *__pyx_n_s_ndim;
3838 : PyObject *__pyx_n_s_new;
3839 : PyObject *__pyx_kp_s_no_default___reduce___due_to_non;
3840 : PyObject *__pyx_n_s_numpy;
3841 : PyObject *__pyx_kp_u_numpy__core_multiarray_failed_to;
3842 : PyObject *__pyx_kp_u_numpy__core_umath_failed_to_impo;
3843 : PyObject *__pyx_n_s_obj;
3844 : PyObject *__pyx_n_s_object;
3845 : PyObject *__pyx_n_s_pack;
3846 : PyObject *__pyx_n_s_pickle;
3847 : PyObject *__pyx_n_s_pyx_PickleError;
3848 : PyObject *__pyx_n_s_pyx_checksum;
3849 : PyObject *__pyx_n_s_pyx_result;
3850 : PyObject *__pyx_n_s_pyx_state;
3851 : PyObject *__pyx_n_s_pyx_type;
3852 : PyObject *__pyx_n_s_pyx_unpickle_Enum;
3853 : PyObject *__pyx_n_s_pyx_vtable;
3854 : PyObject *__pyx_n_s_range;
3855 : PyObject *__pyx_n_s_reduce;
3856 : PyObject *__pyx_n_s_reduce_cython;
3857 : PyObject *__pyx_n_s_reduce_ex;
3858 : PyObject *__pyx_n_s_register;
3859 : PyObject *__pyx_n_s_s;
3860 : PyObject *__pyx_n_s_scipy_signal__sosfilt;
3861 : PyObject *__pyx_n_s_setstate;
3862 : PyObject *__pyx_n_s_setstate_cython;
3863 : PyObject *__pyx_n_s_shape;
3864 : PyObject *__pyx_n_s_signatures;
3865 : PyObject *__pyx_n_s_size;
3866 : PyObject *__pyx_n_s_sos;
3867 : PyObject *__pyx_n_s_sosfilt;
3868 : PyObject *__pyx_n_s_sosfilt_object;
3869 : PyObject *__pyx_n_s_spec;
3870 : PyObject *__pyx_n_s_split;
3871 : PyObject *__pyx_n_s_start;
3872 : PyObject *__pyx_n_s_step;
3873 : PyObject *__pyx_n_s_stop;
3874 : PyObject *__pyx_kp_s_strided_and_direct;
3875 : PyObject *__pyx_kp_s_strided_and_direct_or_indirect;
3876 : PyObject *__pyx_kp_s_strided_and_indirect;
3877 : PyObject *__pyx_kp_s_stringsource;
3878 : PyObject *__pyx_n_s_strip;
3879 : PyObject *__pyx_n_s_struct;
3880 : PyObject *__pyx_n_s_sys;
3881 : PyObject *__pyx_n_s_test;
3882 : PyObject *__pyx_kp_s_unable_to_allocate_array_data;
3883 : PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str;
3884 : PyObject *__pyx_n_s_unpack;
3885 : PyObject *__pyx_n_s_update;
3886 : PyObject *__pyx_n_s_values;
3887 : PyObject *__pyx_n_s_version_info;
3888 : PyObject *__pyx_n_s_x;
3889 : PyObject *__pyx_n_s_x_n;
3890 : PyObject *__pyx_n_s_xrange;
3891 : PyObject *__pyx_n_s_zi;
3892 : PyObject *__pyx_int_0;
3893 : PyObject *__pyx_int_1;
3894 : PyObject *__pyx_int_3;
3895 : PyObject *__pyx_int_112105877;
3896 : PyObject *__pyx_int_136983863;
3897 : PyObject *__pyx_int_184977713;
3898 : PyObject *__pyx_int_neg_1;
3899 : PyObject *__pyx_slice__5;
3900 : PyObject *__pyx_tuple__4;
3901 : PyObject *__pyx_tuple__8;
3902 : PyObject *__pyx_tuple__9;
3903 : PyObject *__pyx_tuple__10;
3904 : PyObject *__pyx_tuple__13;
3905 : PyObject *__pyx_tuple__14;
3906 : PyObject *__pyx_tuple__15;
3907 : PyObject *__pyx_tuple__16;
3908 : PyObject *__pyx_tuple__17;
3909 : PyObject *__pyx_tuple__18;
3910 : PyObject *__pyx_tuple__19;
3911 : PyObject *__pyx_tuple__20;
3912 : PyObject *__pyx_tuple__21;
3913 : PyObject *__pyx_tuple__22;
3914 : PyObject *__pyx_tuple__23;
3915 : PyObject *__pyx_tuple__24;
3916 : PyObject *__pyx_tuple__26;
3917 : PyObject *__pyx_tuple__28;
3918 : PyObject *__pyx_codeobj__25;
3919 : PyObject *__pyx_codeobj__27;
3920 : PyObject *__pyx_codeobj__29;
3921 : } __pyx_mstate;
3922 :
3923 : #if CYTHON_USE_MODULE_STATE
3924 : #ifdef __cplusplus
3925 : namespace {
3926 : extern struct PyModuleDef __pyx_moduledef;
3927 : } /* anonymous namespace */
3928 : #else
3929 : static struct PyModuleDef __pyx_moduledef;
3930 : #endif
3931 :
3932 : #define __pyx_mstate(o) ((__pyx_mstate *)__Pyx_PyModule_GetState(o))
3933 :
3934 : #define __pyx_mstate_global (__pyx_mstate(PyState_FindModule(&__pyx_moduledef)))
3935 :
3936 : #define __pyx_m (PyState_FindModule(&__pyx_moduledef))
3937 : #else
3938 : static __pyx_mstate __pyx_mstate_global_static =
3939 : #ifdef __cplusplus
3940 : {};
3941 : #else
3942 : {0};
3943 : #endif
3944 : static __pyx_mstate *__pyx_mstate_global = &__pyx_mstate_global_static;
3945 : #endif
3946 : /* #### Code section: module_state_clear ### */
3947 : #if CYTHON_USE_MODULE_STATE
3948 : static int __pyx_m_clear(PyObject *m) {
3949 : __pyx_mstate *clear_module_state = __pyx_mstate(m);
3950 : if (!clear_module_state) return 0;
3951 : Py_CLEAR(clear_module_state->__pyx_d);
3952 : Py_CLEAR(clear_module_state->__pyx_b);
3953 : Py_CLEAR(clear_module_state->__pyx_cython_runtime);
3954 : Py_CLEAR(clear_module_state->__pyx_empty_tuple);
3955 : Py_CLEAR(clear_module_state->__pyx_empty_bytes);
3956 : Py_CLEAR(clear_module_state->__pyx_empty_unicode);
3957 : #ifdef __Pyx_CyFunction_USED
3958 : Py_CLEAR(clear_module_state->__pyx_CyFunctionType);
3959 : #endif
3960 : #ifdef __Pyx_FusedFunction_USED
3961 : Py_CLEAR(clear_module_state->__pyx_FusedFunctionType);
3962 : #endif
3963 : Py_CLEAR(clear_module_state->__pyx_ptype_7cpython_4type_type);
3964 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_dtype);
3965 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flatiter);
3966 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_broadcast);
3967 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ndarray);
3968 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_generic);
3969 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_number);
3970 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_integer);
3971 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_signedinteger);
3972 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_unsignedinteger);
3973 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_inexact);
3974 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_floating);
3975 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_complexfloating);
3976 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_flexible);
3977 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_character);
3978 : Py_CLEAR(clear_module_state->__pyx_ptype_5numpy_ufunc);
3979 : Py_CLEAR(clear_module_state->__pyx_array_type);
3980 : Py_CLEAR(clear_module_state->__pyx_type___pyx_array);
3981 : Py_CLEAR(clear_module_state->__pyx_MemviewEnum_type);
3982 : Py_CLEAR(clear_module_state->__pyx_type___pyx_MemviewEnum);
3983 : Py_CLEAR(clear_module_state->__pyx_memoryview_type);
3984 : Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryview);
3985 : Py_CLEAR(clear_module_state->__pyx_memoryviewslice_type);
3986 : Py_CLEAR(clear_module_state->__pyx_type___pyx_memoryviewslice);
3987 : Py_CLEAR(clear_module_state->__pyx_kp_u_);
3988 : Py_CLEAR(clear_module_state->__pyx_n_s_ASCII);
3989 : Py_CLEAR(clear_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
3990 : Py_CLEAR(clear_module_state->__pyx_n_s_AssertionError);
3991 : Py_CLEAR(clear_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
3992 : Py_CLEAR(clear_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
3993 : Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
3994 : Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
3995 : Py_CLEAR(clear_module_state->__pyx_kp_u_Cannot_index_with_type);
3996 : Py_CLEAR(clear_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
3997 : Py_CLEAR(clear_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
3998 : Py_CLEAR(clear_module_state->__pyx_n_s_Ellipsis);
3999 : Py_CLEAR(clear_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
4000 : Py_CLEAR(clear_module_state->__pyx_kp_s_Expected_at_least_d_argument_s_g);
4001 : Py_CLEAR(clear_module_state->__pyx_kp_s_Function_call_with_ambiguous_arg);
4002 : Py_CLEAR(clear_module_state->__pyx_n_s_ImportError);
4003 : Py_CLEAR(clear_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
4004 : Py_CLEAR(clear_module_state->__pyx_n_s_IndexError);
4005 : Py_CLEAR(clear_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
4006 : Py_CLEAR(clear_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
4007 : Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
4008 : Py_CLEAR(clear_module_state->__pyx_kp_u_Invalid_shape_in_axis);
4009 : Py_CLEAR(clear_module_state->__pyx_n_s_MemoryError);
4010 : Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
4011 : Py_CLEAR(clear_module_state->__pyx_kp_s_MemoryView_of_r_object);
4012 : Py_CLEAR(clear_module_state->__pyx_kp_s_No_matching_signature_found);
4013 : Py_CLEAR(clear_module_state->__pyx_n_b_O);
4014 : Py_CLEAR(clear_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
4015 : Py_CLEAR(clear_module_state->__pyx_n_s_PickleError);
4016 : Py_CLEAR(clear_module_state->__pyx_n_s_Sequence);
4017 : Py_CLEAR(clear_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
4018 : Py_CLEAR(clear_module_state->__pyx_n_s_TypeError);
4019 : Py_CLEAR(clear_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
4020 : Py_CLEAR(clear_module_state->__pyx_n_s_ValueError);
4021 : Py_CLEAR(clear_module_state->__pyx_n_s_View_MemoryView);
4022 : Py_CLEAR(clear_module_state->__pyx_kp_s__11);
4023 : Py_CLEAR(clear_module_state->__pyx_kp_s__12);
4024 : Py_CLEAR(clear_module_state->__pyx_kp_u__12);
4025 : Py_CLEAR(clear_module_state->__pyx_kp_u__2);
4026 : Py_CLEAR(clear_module_state->__pyx_n_s__3);
4027 : Py_CLEAR(clear_module_state->__pyx_n_s__30);
4028 : Py_CLEAR(clear_module_state->__pyx_kp_u__6);
4029 : Py_CLEAR(clear_module_state->__pyx_kp_u__7);
4030 : Py_CLEAR(clear_module_state->__pyx_n_s_abc);
4031 : Py_CLEAR(clear_module_state->__pyx_n_s_allocate_buffer);
4032 : Py_CLEAR(clear_module_state->__pyx_kp_u_and);
4033 : Py_CLEAR(clear_module_state->__pyx_n_s_args);
4034 : Py_CLEAR(clear_module_state->__pyx_n_s_asyncio_coroutines);
4035 : Py_CLEAR(clear_module_state->__pyx_n_s_base);
4036 : Py_CLEAR(clear_module_state->__pyx_n_s_c);
4037 : Py_CLEAR(clear_module_state->__pyx_n_u_c);
4038 : Py_CLEAR(clear_module_state->__pyx_n_s_class);
4039 : Py_CLEAR(clear_module_state->__pyx_n_s_class_getitem);
4040 : Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback);
4041 : Py_CLEAR(clear_module_state->__pyx_n_s_collections);
4042 : Py_CLEAR(clear_module_state->__pyx_kp_s_collections_abc);
4043 : Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_direct);
4044 : Py_CLEAR(clear_module_state->__pyx_kp_s_contiguous_and_indirect);
4045 : Py_CLEAR(clear_module_state->__pyx_n_s_count);
4046 : Py_CLEAR(clear_module_state->__pyx_n_s_defaults);
4047 : Py_CLEAR(clear_module_state->__pyx_n_s_dict);
4048 : Py_CLEAR(clear_module_state->__pyx_kp_u_disable);
4049 : Py_CLEAR(clear_module_state->__pyx_n_s_double);
4050 : Py_CLEAR(clear_module_state->__pyx_kp_s_double_complex);
4051 : Py_CLEAR(clear_module_state->__pyx_n_s_dtype);
4052 : Py_CLEAR(clear_module_state->__pyx_n_s_dtype_is_object);
4053 : Py_CLEAR(clear_module_state->__pyx_kp_u_enable);
4054 : Py_CLEAR(clear_module_state->__pyx_n_s_encode);
4055 : Py_CLEAR(clear_module_state->__pyx_n_s_enumerate);
4056 : Py_CLEAR(clear_module_state->__pyx_n_s_error);
4057 : Py_CLEAR(clear_module_state->__pyx_n_s_flags);
4058 : Py_CLEAR(clear_module_state->__pyx_n_s_float);
4059 : Py_CLEAR(clear_module_state->__pyx_kp_s_float_complex);
4060 : Py_CLEAR(clear_module_state->__pyx_n_s_format);
4061 : Py_CLEAR(clear_module_state->__pyx_n_s_fortran);
4062 : Py_CLEAR(clear_module_state->__pyx_n_u_fortran);
4063 : Py_CLEAR(clear_module_state->__pyx_n_s_fused_sigindex);
4064 : Py_CLEAR(clear_module_state->__pyx_kp_u_gc);
4065 : Py_CLEAR(clear_module_state->__pyx_n_s_get);
4066 : Py_CLEAR(clear_module_state->__pyx_n_s_getstate);
4067 : Py_CLEAR(clear_module_state->__pyx_kp_u_got);
4068 : Py_CLEAR(clear_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
4069 : Py_CLEAR(clear_module_state->__pyx_kp_s_home_czgdp18079_Quansight_scipy);
4070 : Py_CLEAR(clear_module_state->__pyx_n_s_i);
4071 : Py_CLEAR(clear_module_state->__pyx_n_s_id);
4072 : Py_CLEAR(clear_module_state->__pyx_n_s_import);
4073 : Py_CLEAR(clear_module_state->__pyx_n_s_index);
4074 : Py_CLEAR(clear_module_state->__pyx_n_s_initializing);
4075 : Py_CLEAR(clear_module_state->__pyx_n_s_is_coroutine);
4076 : Py_CLEAR(clear_module_state->__pyx_kp_u_isenabled);
4077 : Py_CLEAR(clear_module_state->__pyx_n_s_itemsize);
4078 : Py_CLEAR(clear_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
4079 : Py_CLEAR(clear_module_state->__pyx_n_s_kind);
4080 : Py_CLEAR(clear_module_state->__pyx_n_s_kwargs);
4081 : Py_CLEAR(clear_module_state->__pyx_kp_s_long_double);
4082 : Py_CLEAR(clear_module_state->__pyx_kp_s_long_double_complex);
4083 : Py_CLEAR(clear_module_state->__pyx_n_s_main);
4084 : Py_CLEAR(clear_module_state->__pyx_n_s_memview);
4085 : Py_CLEAR(clear_module_state->__pyx_n_s_mode);
4086 : Py_CLEAR(clear_module_state->__pyx_n_s_n);
4087 : Py_CLEAR(clear_module_state->__pyx_n_s_n_samples);
4088 : Py_CLEAR(clear_module_state->__pyx_n_s_n_sections);
4089 : Py_CLEAR(clear_module_state->__pyx_n_s_n_signals);
4090 : Py_CLEAR(clear_module_state->__pyx_n_s_name);
4091 : Py_CLEAR(clear_module_state->__pyx_n_s_name_2);
4092 : Py_CLEAR(clear_module_state->__pyx_n_s_ndim);
4093 : Py_CLEAR(clear_module_state->__pyx_n_s_new);
4094 : Py_CLEAR(clear_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
4095 : Py_CLEAR(clear_module_state->__pyx_n_s_numpy);
4096 : Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
4097 : Py_CLEAR(clear_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
4098 : Py_CLEAR(clear_module_state->__pyx_n_s_obj);
4099 : Py_CLEAR(clear_module_state->__pyx_n_s_object);
4100 : Py_CLEAR(clear_module_state->__pyx_n_s_pack);
4101 : Py_CLEAR(clear_module_state->__pyx_n_s_pickle);
4102 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_PickleError);
4103 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_checksum);
4104 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_result);
4105 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_state);
4106 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_type);
4107 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_unpickle_Enum);
4108 : Py_CLEAR(clear_module_state->__pyx_n_s_pyx_vtable);
4109 : Py_CLEAR(clear_module_state->__pyx_n_s_range);
4110 : Py_CLEAR(clear_module_state->__pyx_n_s_reduce);
4111 : Py_CLEAR(clear_module_state->__pyx_n_s_reduce_cython);
4112 : Py_CLEAR(clear_module_state->__pyx_n_s_reduce_ex);
4113 : Py_CLEAR(clear_module_state->__pyx_n_s_register);
4114 : Py_CLEAR(clear_module_state->__pyx_n_s_s);
4115 : Py_CLEAR(clear_module_state->__pyx_n_s_scipy_signal__sosfilt);
4116 : Py_CLEAR(clear_module_state->__pyx_n_s_setstate);
4117 : Py_CLEAR(clear_module_state->__pyx_n_s_setstate_cython);
4118 : Py_CLEAR(clear_module_state->__pyx_n_s_shape);
4119 : Py_CLEAR(clear_module_state->__pyx_n_s_signatures);
4120 : Py_CLEAR(clear_module_state->__pyx_n_s_size);
4121 : Py_CLEAR(clear_module_state->__pyx_n_s_sos);
4122 : Py_CLEAR(clear_module_state->__pyx_n_s_sosfilt);
4123 : Py_CLEAR(clear_module_state->__pyx_n_s_sosfilt_object);
4124 : Py_CLEAR(clear_module_state->__pyx_n_s_spec);
4125 : Py_CLEAR(clear_module_state->__pyx_n_s_split);
4126 : Py_CLEAR(clear_module_state->__pyx_n_s_start);
4127 : Py_CLEAR(clear_module_state->__pyx_n_s_step);
4128 : Py_CLEAR(clear_module_state->__pyx_n_s_stop);
4129 : Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct);
4130 : Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
4131 : Py_CLEAR(clear_module_state->__pyx_kp_s_strided_and_indirect);
4132 : Py_CLEAR(clear_module_state->__pyx_kp_s_stringsource);
4133 : Py_CLEAR(clear_module_state->__pyx_n_s_strip);
4134 : Py_CLEAR(clear_module_state->__pyx_n_s_struct);
4135 : Py_CLEAR(clear_module_state->__pyx_n_s_sys);
4136 : Py_CLEAR(clear_module_state->__pyx_n_s_test);
4137 : Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_array_data);
4138 : Py_CLEAR(clear_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
4139 : Py_CLEAR(clear_module_state->__pyx_n_s_unpack);
4140 : Py_CLEAR(clear_module_state->__pyx_n_s_update);
4141 : Py_CLEAR(clear_module_state->__pyx_n_s_values);
4142 : Py_CLEAR(clear_module_state->__pyx_n_s_version_info);
4143 : Py_CLEAR(clear_module_state->__pyx_n_s_x);
4144 : Py_CLEAR(clear_module_state->__pyx_n_s_x_n);
4145 : Py_CLEAR(clear_module_state->__pyx_n_s_xrange);
4146 : Py_CLEAR(clear_module_state->__pyx_n_s_zi);
4147 : Py_CLEAR(clear_module_state->__pyx_int_0);
4148 : Py_CLEAR(clear_module_state->__pyx_int_1);
4149 : Py_CLEAR(clear_module_state->__pyx_int_3);
4150 : Py_CLEAR(clear_module_state->__pyx_int_112105877);
4151 : Py_CLEAR(clear_module_state->__pyx_int_136983863);
4152 : Py_CLEAR(clear_module_state->__pyx_int_184977713);
4153 : Py_CLEAR(clear_module_state->__pyx_int_neg_1);
4154 : Py_CLEAR(clear_module_state->__pyx_slice__5);
4155 : Py_CLEAR(clear_module_state->__pyx_tuple__4);
4156 : Py_CLEAR(clear_module_state->__pyx_tuple__8);
4157 : Py_CLEAR(clear_module_state->__pyx_tuple__9);
4158 : Py_CLEAR(clear_module_state->__pyx_tuple__10);
4159 : Py_CLEAR(clear_module_state->__pyx_tuple__13);
4160 : Py_CLEAR(clear_module_state->__pyx_tuple__14);
4161 : Py_CLEAR(clear_module_state->__pyx_tuple__15);
4162 : Py_CLEAR(clear_module_state->__pyx_tuple__16);
4163 : Py_CLEAR(clear_module_state->__pyx_tuple__17);
4164 : Py_CLEAR(clear_module_state->__pyx_tuple__18);
4165 : Py_CLEAR(clear_module_state->__pyx_tuple__19);
4166 : Py_CLEAR(clear_module_state->__pyx_tuple__20);
4167 : Py_CLEAR(clear_module_state->__pyx_tuple__21);
4168 : Py_CLEAR(clear_module_state->__pyx_tuple__22);
4169 : Py_CLEAR(clear_module_state->__pyx_tuple__23);
4170 : Py_CLEAR(clear_module_state->__pyx_tuple__24);
4171 : Py_CLEAR(clear_module_state->__pyx_tuple__26);
4172 : Py_CLEAR(clear_module_state->__pyx_tuple__28);
4173 : Py_CLEAR(clear_module_state->__pyx_codeobj__25);
4174 : Py_CLEAR(clear_module_state->__pyx_codeobj__27);
4175 : Py_CLEAR(clear_module_state->__pyx_codeobj__29);
4176 : return 0;
4177 : }
4178 : #endif
4179 : /* #### Code section: module_state_traverse ### */
4180 : #if CYTHON_USE_MODULE_STATE
4181 : static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) {
4182 : __pyx_mstate *traverse_module_state = __pyx_mstate(m);
4183 : if (!traverse_module_state) return 0;
4184 : Py_VISIT(traverse_module_state->__pyx_d);
4185 : Py_VISIT(traverse_module_state->__pyx_b);
4186 : Py_VISIT(traverse_module_state->__pyx_cython_runtime);
4187 : Py_VISIT(traverse_module_state->__pyx_empty_tuple);
4188 : Py_VISIT(traverse_module_state->__pyx_empty_bytes);
4189 : Py_VISIT(traverse_module_state->__pyx_empty_unicode);
4190 : #ifdef __Pyx_CyFunction_USED
4191 : Py_VISIT(traverse_module_state->__pyx_CyFunctionType);
4192 : #endif
4193 : #ifdef __Pyx_FusedFunction_USED
4194 : Py_VISIT(traverse_module_state->__pyx_FusedFunctionType);
4195 : #endif
4196 : Py_VISIT(traverse_module_state->__pyx_ptype_7cpython_4type_type);
4197 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_dtype);
4198 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flatiter);
4199 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_broadcast);
4200 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ndarray);
4201 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_generic);
4202 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_number);
4203 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_integer);
4204 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_signedinteger);
4205 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_unsignedinteger);
4206 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_inexact);
4207 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_floating);
4208 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_complexfloating);
4209 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_flexible);
4210 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_character);
4211 : Py_VISIT(traverse_module_state->__pyx_ptype_5numpy_ufunc);
4212 : Py_VISIT(traverse_module_state->__pyx_array_type);
4213 : Py_VISIT(traverse_module_state->__pyx_type___pyx_array);
4214 : Py_VISIT(traverse_module_state->__pyx_MemviewEnum_type);
4215 : Py_VISIT(traverse_module_state->__pyx_type___pyx_MemviewEnum);
4216 : Py_VISIT(traverse_module_state->__pyx_memoryview_type);
4217 : Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryview);
4218 : Py_VISIT(traverse_module_state->__pyx_memoryviewslice_type);
4219 : Py_VISIT(traverse_module_state->__pyx_type___pyx_memoryviewslice);
4220 : Py_VISIT(traverse_module_state->__pyx_kp_u_);
4221 : Py_VISIT(traverse_module_state->__pyx_n_s_ASCII);
4222 : Py_VISIT(traverse_module_state->__pyx_kp_s_All_dimensions_preceding_dimensi);
4223 : Py_VISIT(traverse_module_state->__pyx_n_s_AssertionError);
4224 : Py_VISIT(traverse_module_state->__pyx_kp_s_Buffer_view_does_not_expose_stri);
4225 : Py_VISIT(traverse_module_state->__pyx_kp_s_Can_only_create_a_buffer_that_is);
4226 : Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_assign_to_read_only_memor);
4227 : Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_create_writable_memory_vi);
4228 : Py_VISIT(traverse_module_state->__pyx_kp_u_Cannot_index_with_type);
4229 : Py_VISIT(traverse_module_state->__pyx_kp_s_Cannot_transpose_memoryview_with);
4230 : Py_VISIT(traverse_module_state->__pyx_kp_s_Dimension_d_is_not_direct);
4231 : Py_VISIT(traverse_module_state->__pyx_n_s_Ellipsis);
4232 : Py_VISIT(traverse_module_state->__pyx_kp_s_Empty_shape_tuple_for_cython_arr);
4233 : Py_VISIT(traverse_module_state->__pyx_kp_s_Expected_at_least_d_argument_s_g);
4234 : Py_VISIT(traverse_module_state->__pyx_kp_s_Function_call_with_ambiguous_arg);
4235 : Py_VISIT(traverse_module_state->__pyx_n_s_ImportError);
4236 : Py_VISIT(traverse_module_state->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0);
4237 : Py_VISIT(traverse_module_state->__pyx_n_s_IndexError);
4238 : Py_VISIT(traverse_module_state->__pyx_kp_s_Index_out_of_bounds_axis_d);
4239 : Py_VISIT(traverse_module_state->__pyx_kp_s_Indirect_dimensions_not_supporte);
4240 : Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_mode_expected_c_or_fortr);
4241 : Py_VISIT(traverse_module_state->__pyx_kp_u_Invalid_shape_in_axis);
4242 : Py_VISIT(traverse_module_state->__pyx_n_s_MemoryError);
4243 : Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_at_0x_x);
4244 : Py_VISIT(traverse_module_state->__pyx_kp_s_MemoryView_of_r_object);
4245 : Py_VISIT(traverse_module_state->__pyx_kp_s_No_matching_signature_found);
4246 : Py_VISIT(traverse_module_state->__pyx_n_b_O);
4247 : Py_VISIT(traverse_module_state->__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
4248 : Py_VISIT(traverse_module_state->__pyx_n_s_PickleError);
4249 : Py_VISIT(traverse_module_state->__pyx_n_s_Sequence);
4250 : Py_VISIT(traverse_module_state->__pyx_kp_s_Step_may_not_be_zero_axis_d);
4251 : Py_VISIT(traverse_module_state->__pyx_n_s_TypeError);
4252 : Py_VISIT(traverse_module_state->__pyx_kp_s_Unable_to_convert_item_to_object);
4253 : Py_VISIT(traverse_module_state->__pyx_n_s_ValueError);
4254 : Py_VISIT(traverse_module_state->__pyx_n_s_View_MemoryView);
4255 : Py_VISIT(traverse_module_state->__pyx_kp_s__11);
4256 : Py_VISIT(traverse_module_state->__pyx_kp_s__12);
4257 : Py_VISIT(traverse_module_state->__pyx_kp_u__12);
4258 : Py_VISIT(traverse_module_state->__pyx_kp_u__2);
4259 : Py_VISIT(traverse_module_state->__pyx_n_s__3);
4260 : Py_VISIT(traverse_module_state->__pyx_n_s__30);
4261 : Py_VISIT(traverse_module_state->__pyx_kp_u__6);
4262 : Py_VISIT(traverse_module_state->__pyx_kp_u__7);
4263 : Py_VISIT(traverse_module_state->__pyx_n_s_abc);
4264 : Py_VISIT(traverse_module_state->__pyx_n_s_allocate_buffer);
4265 : Py_VISIT(traverse_module_state->__pyx_kp_u_and);
4266 : Py_VISIT(traverse_module_state->__pyx_n_s_args);
4267 : Py_VISIT(traverse_module_state->__pyx_n_s_asyncio_coroutines);
4268 : Py_VISIT(traverse_module_state->__pyx_n_s_base);
4269 : Py_VISIT(traverse_module_state->__pyx_n_s_c);
4270 : Py_VISIT(traverse_module_state->__pyx_n_u_c);
4271 : Py_VISIT(traverse_module_state->__pyx_n_s_class);
4272 : Py_VISIT(traverse_module_state->__pyx_n_s_class_getitem);
4273 : Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback);
4274 : Py_VISIT(traverse_module_state->__pyx_n_s_collections);
4275 : Py_VISIT(traverse_module_state->__pyx_kp_s_collections_abc);
4276 : Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_direct);
4277 : Py_VISIT(traverse_module_state->__pyx_kp_s_contiguous_and_indirect);
4278 : Py_VISIT(traverse_module_state->__pyx_n_s_count);
4279 : Py_VISIT(traverse_module_state->__pyx_n_s_defaults);
4280 : Py_VISIT(traverse_module_state->__pyx_n_s_dict);
4281 : Py_VISIT(traverse_module_state->__pyx_kp_u_disable);
4282 : Py_VISIT(traverse_module_state->__pyx_n_s_double);
4283 : Py_VISIT(traverse_module_state->__pyx_kp_s_double_complex);
4284 : Py_VISIT(traverse_module_state->__pyx_n_s_dtype);
4285 : Py_VISIT(traverse_module_state->__pyx_n_s_dtype_is_object);
4286 : Py_VISIT(traverse_module_state->__pyx_kp_u_enable);
4287 : Py_VISIT(traverse_module_state->__pyx_n_s_encode);
4288 : Py_VISIT(traverse_module_state->__pyx_n_s_enumerate);
4289 : Py_VISIT(traverse_module_state->__pyx_n_s_error);
4290 : Py_VISIT(traverse_module_state->__pyx_n_s_flags);
4291 : Py_VISIT(traverse_module_state->__pyx_n_s_float);
4292 : Py_VISIT(traverse_module_state->__pyx_kp_s_float_complex);
4293 : Py_VISIT(traverse_module_state->__pyx_n_s_format);
4294 : Py_VISIT(traverse_module_state->__pyx_n_s_fortran);
4295 : Py_VISIT(traverse_module_state->__pyx_n_u_fortran);
4296 : Py_VISIT(traverse_module_state->__pyx_n_s_fused_sigindex);
4297 : Py_VISIT(traverse_module_state->__pyx_kp_u_gc);
4298 : Py_VISIT(traverse_module_state->__pyx_n_s_get);
4299 : Py_VISIT(traverse_module_state->__pyx_n_s_getstate);
4300 : Py_VISIT(traverse_module_state->__pyx_kp_u_got);
4301 : Py_VISIT(traverse_module_state->__pyx_kp_u_got_differing_extents_in_dimensi);
4302 : Py_VISIT(traverse_module_state->__pyx_kp_s_home_czgdp18079_Quansight_scipy);
4303 : Py_VISIT(traverse_module_state->__pyx_n_s_i);
4304 : Py_VISIT(traverse_module_state->__pyx_n_s_id);
4305 : Py_VISIT(traverse_module_state->__pyx_n_s_import);
4306 : Py_VISIT(traverse_module_state->__pyx_n_s_index);
4307 : Py_VISIT(traverse_module_state->__pyx_n_s_initializing);
4308 : Py_VISIT(traverse_module_state->__pyx_n_s_is_coroutine);
4309 : Py_VISIT(traverse_module_state->__pyx_kp_u_isenabled);
4310 : Py_VISIT(traverse_module_state->__pyx_n_s_itemsize);
4311 : Py_VISIT(traverse_module_state->__pyx_kp_s_itemsize_0_for_cython_array);
4312 : Py_VISIT(traverse_module_state->__pyx_n_s_kind);
4313 : Py_VISIT(traverse_module_state->__pyx_n_s_kwargs);
4314 : Py_VISIT(traverse_module_state->__pyx_kp_s_long_double);
4315 : Py_VISIT(traverse_module_state->__pyx_kp_s_long_double_complex);
4316 : Py_VISIT(traverse_module_state->__pyx_n_s_main);
4317 : Py_VISIT(traverse_module_state->__pyx_n_s_memview);
4318 : Py_VISIT(traverse_module_state->__pyx_n_s_mode);
4319 : Py_VISIT(traverse_module_state->__pyx_n_s_n);
4320 : Py_VISIT(traverse_module_state->__pyx_n_s_n_samples);
4321 : Py_VISIT(traverse_module_state->__pyx_n_s_n_sections);
4322 : Py_VISIT(traverse_module_state->__pyx_n_s_n_signals);
4323 : Py_VISIT(traverse_module_state->__pyx_n_s_name);
4324 : Py_VISIT(traverse_module_state->__pyx_n_s_name_2);
4325 : Py_VISIT(traverse_module_state->__pyx_n_s_ndim);
4326 : Py_VISIT(traverse_module_state->__pyx_n_s_new);
4327 : Py_VISIT(traverse_module_state->__pyx_kp_s_no_default___reduce___due_to_non);
4328 : Py_VISIT(traverse_module_state->__pyx_n_s_numpy);
4329 : Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_multiarray_failed_to);
4330 : Py_VISIT(traverse_module_state->__pyx_kp_u_numpy__core_umath_failed_to_impo);
4331 : Py_VISIT(traverse_module_state->__pyx_n_s_obj);
4332 : Py_VISIT(traverse_module_state->__pyx_n_s_object);
4333 : Py_VISIT(traverse_module_state->__pyx_n_s_pack);
4334 : Py_VISIT(traverse_module_state->__pyx_n_s_pickle);
4335 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_PickleError);
4336 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_checksum);
4337 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_result);
4338 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_state);
4339 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_type);
4340 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_unpickle_Enum);
4341 : Py_VISIT(traverse_module_state->__pyx_n_s_pyx_vtable);
4342 : Py_VISIT(traverse_module_state->__pyx_n_s_range);
4343 : Py_VISIT(traverse_module_state->__pyx_n_s_reduce);
4344 : Py_VISIT(traverse_module_state->__pyx_n_s_reduce_cython);
4345 : Py_VISIT(traverse_module_state->__pyx_n_s_reduce_ex);
4346 : Py_VISIT(traverse_module_state->__pyx_n_s_register);
4347 : Py_VISIT(traverse_module_state->__pyx_n_s_s);
4348 : Py_VISIT(traverse_module_state->__pyx_n_s_scipy_signal__sosfilt);
4349 : Py_VISIT(traverse_module_state->__pyx_n_s_setstate);
4350 : Py_VISIT(traverse_module_state->__pyx_n_s_setstate_cython);
4351 : Py_VISIT(traverse_module_state->__pyx_n_s_shape);
4352 : Py_VISIT(traverse_module_state->__pyx_n_s_signatures);
4353 : Py_VISIT(traverse_module_state->__pyx_n_s_size);
4354 : Py_VISIT(traverse_module_state->__pyx_n_s_sos);
4355 : Py_VISIT(traverse_module_state->__pyx_n_s_sosfilt);
4356 : Py_VISIT(traverse_module_state->__pyx_n_s_sosfilt_object);
4357 : Py_VISIT(traverse_module_state->__pyx_n_s_spec);
4358 : Py_VISIT(traverse_module_state->__pyx_n_s_split);
4359 : Py_VISIT(traverse_module_state->__pyx_n_s_start);
4360 : Py_VISIT(traverse_module_state->__pyx_n_s_step);
4361 : Py_VISIT(traverse_module_state->__pyx_n_s_stop);
4362 : Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct);
4363 : Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_direct_or_indirect);
4364 : Py_VISIT(traverse_module_state->__pyx_kp_s_strided_and_indirect);
4365 : Py_VISIT(traverse_module_state->__pyx_kp_s_stringsource);
4366 : Py_VISIT(traverse_module_state->__pyx_n_s_strip);
4367 : Py_VISIT(traverse_module_state->__pyx_n_s_struct);
4368 : Py_VISIT(traverse_module_state->__pyx_n_s_sys);
4369 : Py_VISIT(traverse_module_state->__pyx_n_s_test);
4370 : Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_array_data);
4371 : Py_VISIT(traverse_module_state->__pyx_kp_s_unable_to_allocate_shape_and_str);
4372 : Py_VISIT(traverse_module_state->__pyx_n_s_unpack);
4373 : Py_VISIT(traverse_module_state->__pyx_n_s_update);
4374 : Py_VISIT(traverse_module_state->__pyx_n_s_values);
4375 : Py_VISIT(traverse_module_state->__pyx_n_s_version_info);
4376 : Py_VISIT(traverse_module_state->__pyx_n_s_x);
4377 : Py_VISIT(traverse_module_state->__pyx_n_s_x_n);
4378 : Py_VISIT(traverse_module_state->__pyx_n_s_xrange);
4379 : Py_VISIT(traverse_module_state->__pyx_n_s_zi);
4380 : Py_VISIT(traverse_module_state->__pyx_int_0);
4381 : Py_VISIT(traverse_module_state->__pyx_int_1);
4382 : Py_VISIT(traverse_module_state->__pyx_int_3);
4383 : Py_VISIT(traverse_module_state->__pyx_int_112105877);
4384 : Py_VISIT(traverse_module_state->__pyx_int_136983863);
4385 : Py_VISIT(traverse_module_state->__pyx_int_184977713);
4386 : Py_VISIT(traverse_module_state->__pyx_int_neg_1);
4387 : Py_VISIT(traverse_module_state->__pyx_slice__5);
4388 : Py_VISIT(traverse_module_state->__pyx_tuple__4);
4389 : Py_VISIT(traverse_module_state->__pyx_tuple__8);
4390 : Py_VISIT(traverse_module_state->__pyx_tuple__9);
4391 : Py_VISIT(traverse_module_state->__pyx_tuple__10);
4392 : Py_VISIT(traverse_module_state->__pyx_tuple__13);
4393 : Py_VISIT(traverse_module_state->__pyx_tuple__14);
4394 : Py_VISIT(traverse_module_state->__pyx_tuple__15);
4395 : Py_VISIT(traverse_module_state->__pyx_tuple__16);
4396 : Py_VISIT(traverse_module_state->__pyx_tuple__17);
4397 : Py_VISIT(traverse_module_state->__pyx_tuple__18);
4398 : Py_VISIT(traverse_module_state->__pyx_tuple__19);
4399 : Py_VISIT(traverse_module_state->__pyx_tuple__20);
4400 : Py_VISIT(traverse_module_state->__pyx_tuple__21);
4401 : Py_VISIT(traverse_module_state->__pyx_tuple__22);
4402 : Py_VISIT(traverse_module_state->__pyx_tuple__23);
4403 : Py_VISIT(traverse_module_state->__pyx_tuple__24);
4404 : Py_VISIT(traverse_module_state->__pyx_tuple__26);
4405 : Py_VISIT(traverse_module_state->__pyx_tuple__28);
4406 : Py_VISIT(traverse_module_state->__pyx_codeobj__25);
4407 : Py_VISIT(traverse_module_state->__pyx_codeobj__27);
4408 : Py_VISIT(traverse_module_state->__pyx_codeobj__29);
4409 : return 0;
4410 : }
4411 : #endif
4412 : /* #### Code section: module_state_defines ### */
4413 : #define __pyx_d __pyx_mstate_global->__pyx_d
4414 : #define __pyx_b __pyx_mstate_global->__pyx_b
4415 : #define __pyx_cython_runtime __pyx_mstate_global->__pyx_cython_runtime
4416 : #define __pyx_empty_tuple __pyx_mstate_global->__pyx_empty_tuple
4417 : #define __pyx_empty_bytes __pyx_mstate_global->__pyx_empty_bytes
4418 : #define __pyx_empty_unicode __pyx_mstate_global->__pyx_empty_unicode
4419 : #ifdef __Pyx_CyFunction_USED
4420 : #define __pyx_CyFunctionType __pyx_mstate_global->__pyx_CyFunctionType
4421 : #endif
4422 : #ifdef __Pyx_FusedFunction_USED
4423 : #define __pyx_FusedFunctionType __pyx_mstate_global->__pyx_FusedFunctionType
4424 : #endif
4425 : #ifdef __Pyx_Generator_USED
4426 : #define __pyx_GeneratorType __pyx_mstate_global->__pyx_GeneratorType
4427 : #endif
4428 : #ifdef __Pyx_IterableCoroutine_USED
4429 : #define __pyx_IterableCoroutineType __pyx_mstate_global->__pyx_IterableCoroutineType
4430 : #endif
4431 : #ifdef __Pyx_Coroutine_USED
4432 : #define __pyx_CoroutineAwaitType __pyx_mstate_global->__pyx_CoroutineAwaitType
4433 : #endif
4434 : #ifdef __Pyx_Coroutine_USED
4435 : #define __pyx_CoroutineType __pyx_mstate_global->__pyx_CoroutineType
4436 : #endif
4437 : #if CYTHON_USE_MODULE_STATE
4438 : #endif
4439 : #if CYTHON_USE_MODULE_STATE
4440 : #endif
4441 : #if CYTHON_USE_MODULE_STATE
4442 : #endif
4443 : #if CYTHON_USE_MODULE_STATE
4444 : #endif
4445 : #define __pyx_ptype_7cpython_4type_type __pyx_mstate_global->__pyx_ptype_7cpython_4type_type
4446 : #if CYTHON_USE_MODULE_STATE
4447 : #endif
4448 : #if CYTHON_USE_MODULE_STATE
4449 : #endif
4450 : #if CYTHON_USE_MODULE_STATE
4451 : #endif
4452 : #if CYTHON_USE_MODULE_STATE
4453 : #endif
4454 : #if CYTHON_USE_MODULE_STATE
4455 : #endif
4456 : #define __pyx_ptype_5numpy_dtype __pyx_mstate_global->__pyx_ptype_5numpy_dtype
4457 : #define __pyx_ptype_5numpy_flatiter __pyx_mstate_global->__pyx_ptype_5numpy_flatiter
4458 : #define __pyx_ptype_5numpy_broadcast __pyx_mstate_global->__pyx_ptype_5numpy_broadcast
4459 : #define __pyx_ptype_5numpy_ndarray __pyx_mstate_global->__pyx_ptype_5numpy_ndarray
4460 : #define __pyx_ptype_5numpy_generic __pyx_mstate_global->__pyx_ptype_5numpy_generic
4461 : #define __pyx_ptype_5numpy_number __pyx_mstate_global->__pyx_ptype_5numpy_number
4462 : #define __pyx_ptype_5numpy_integer __pyx_mstate_global->__pyx_ptype_5numpy_integer
4463 : #define __pyx_ptype_5numpy_signedinteger __pyx_mstate_global->__pyx_ptype_5numpy_signedinteger
4464 : #define __pyx_ptype_5numpy_unsignedinteger __pyx_mstate_global->__pyx_ptype_5numpy_unsignedinteger
4465 : #define __pyx_ptype_5numpy_inexact __pyx_mstate_global->__pyx_ptype_5numpy_inexact
4466 : #define __pyx_ptype_5numpy_floating __pyx_mstate_global->__pyx_ptype_5numpy_floating
4467 : #define __pyx_ptype_5numpy_complexfloating __pyx_mstate_global->__pyx_ptype_5numpy_complexfloating
4468 : #define __pyx_ptype_5numpy_flexible __pyx_mstate_global->__pyx_ptype_5numpy_flexible
4469 : #define __pyx_ptype_5numpy_character __pyx_mstate_global->__pyx_ptype_5numpy_character
4470 : #define __pyx_ptype_5numpy_ufunc __pyx_mstate_global->__pyx_ptype_5numpy_ufunc
4471 : #if CYTHON_USE_MODULE_STATE
4472 : #endif
4473 : #if CYTHON_USE_MODULE_STATE
4474 : #endif
4475 : #if CYTHON_USE_MODULE_STATE
4476 : #endif
4477 : #if CYTHON_USE_MODULE_STATE
4478 : #define __pyx_type___pyx_array __pyx_mstate_global->__pyx_type___pyx_array
4479 : #define __pyx_type___pyx_MemviewEnum __pyx_mstate_global->__pyx_type___pyx_MemviewEnum
4480 : #define __pyx_type___pyx_memoryview __pyx_mstate_global->__pyx_type___pyx_memoryview
4481 : #define __pyx_type___pyx_memoryviewslice __pyx_mstate_global->__pyx_type___pyx_memoryviewslice
4482 : #endif
4483 : #define __pyx_array_type __pyx_mstate_global->__pyx_array_type
4484 : #define __pyx_MemviewEnum_type __pyx_mstate_global->__pyx_MemviewEnum_type
4485 : #define __pyx_memoryview_type __pyx_mstate_global->__pyx_memoryview_type
4486 : #define __pyx_memoryviewslice_type __pyx_mstate_global->__pyx_memoryviewslice_type
4487 : #define __pyx_kp_u_ __pyx_mstate_global->__pyx_kp_u_
4488 : #define __pyx_n_s_ASCII __pyx_mstate_global->__pyx_n_s_ASCII
4489 : #define __pyx_kp_s_All_dimensions_preceding_dimensi __pyx_mstate_global->__pyx_kp_s_All_dimensions_preceding_dimensi
4490 : #define __pyx_n_s_AssertionError __pyx_mstate_global->__pyx_n_s_AssertionError
4491 : #define __pyx_kp_s_Buffer_view_does_not_expose_stri __pyx_mstate_global->__pyx_kp_s_Buffer_view_does_not_expose_stri
4492 : #define __pyx_kp_s_Can_only_create_a_buffer_that_is __pyx_mstate_global->__pyx_kp_s_Can_only_create_a_buffer_that_is
4493 : #define __pyx_kp_s_Cannot_assign_to_read_only_memor __pyx_mstate_global->__pyx_kp_s_Cannot_assign_to_read_only_memor
4494 : #define __pyx_kp_s_Cannot_create_writable_memory_vi __pyx_mstate_global->__pyx_kp_s_Cannot_create_writable_memory_vi
4495 : #define __pyx_kp_u_Cannot_index_with_type __pyx_mstate_global->__pyx_kp_u_Cannot_index_with_type
4496 : #define __pyx_kp_s_Cannot_transpose_memoryview_with __pyx_mstate_global->__pyx_kp_s_Cannot_transpose_memoryview_with
4497 : #define __pyx_kp_s_Dimension_d_is_not_direct __pyx_mstate_global->__pyx_kp_s_Dimension_d_is_not_direct
4498 : #define __pyx_n_s_Ellipsis __pyx_mstate_global->__pyx_n_s_Ellipsis
4499 : #define __pyx_kp_s_Empty_shape_tuple_for_cython_arr __pyx_mstate_global->__pyx_kp_s_Empty_shape_tuple_for_cython_arr
4500 : #define __pyx_kp_s_Expected_at_least_d_argument_s_g __pyx_mstate_global->__pyx_kp_s_Expected_at_least_d_argument_s_g
4501 : #define __pyx_kp_s_Function_call_with_ambiguous_arg __pyx_mstate_global->__pyx_kp_s_Function_call_with_ambiguous_arg
4502 : #define __pyx_n_s_ImportError __pyx_mstate_global->__pyx_n_s_ImportError
4503 : #define __pyx_kp_s_Incompatible_checksums_0x_x_vs_0 __pyx_mstate_global->__pyx_kp_s_Incompatible_checksums_0x_x_vs_0
4504 : #define __pyx_n_s_IndexError __pyx_mstate_global->__pyx_n_s_IndexError
4505 : #define __pyx_kp_s_Index_out_of_bounds_axis_d __pyx_mstate_global->__pyx_kp_s_Index_out_of_bounds_axis_d
4506 : #define __pyx_kp_s_Indirect_dimensions_not_supporte __pyx_mstate_global->__pyx_kp_s_Indirect_dimensions_not_supporte
4507 : #define __pyx_kp_u_Invalid_mode_expected_c_or_fortr __pyx_mstate_global->__pyx_kp_u_Invalid_mode_expected_c_or_fortr
4508 : #define __pyx_kp_u_Invalid_shape_in_axis __pyx_mstate_global->__pyx_kp_u_Invalid_shape_in_axis
4509 : #define __pyx_n_s_MemoryError __pyx_mstate_global->__pyx_n_s_MemoryError
4510 : #define __pyx_kp_s_MemoryView_of_r_at_0x_x __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_at_0x_x
4511 : #define __pyx_kp_s_MemoryView_of_r_object __pyx_mstate_global->__pyx_kp_s_MemoryView_of_r_object
4512 : #define __pyx_kp_s_No_matching_signature_found __pyx_mstate_global->__pyx_kp_s_No_matching_signature_found
4513 : #define __pyx_n_b_O __pyx_mstate_global->__pyx_n_b_O
4514 : #define __pyx_kp_u_Out_of_bounds_on_buffer_access_a __pyx_mstate_global->__pyx_kp_u_Out_of_bounds_on_buffer_access_a
4515 : #define __pyx_n_s_PickleError __pyx_mstate_global->__pyx_n_s_PickleError
4516 : #define __pyx_n_s_Sequence __pyx_mstate_global->__pyx_n_s_Sequence
4517 : #define __pyx_kp_s_Step_may_not_be_zero_axis_d __pyx_mstate_global->__pyx_kp_s_Step_may_not_be_zero_axis_d
4518 : #define __pyx_n_s_TypeError __pyx_mstate_global->__pyx_n_s_TypeError
4519 : #define __pyx_kp_s_Unable_to_convert_item_to_object __pyx_mstate_global->__pyx_kp_s_Unable_to_convert_item_to_object
4520 : #define __pyx_n_s_ValueError __pyx_mstate_global->__pyx_n_s_ValueError
4521 : #define __pyx_n_s_View_MemoryView __pyx_mstate_global->__pyx_n_s_View_MemoryView
4522 : #define __pyx_kp_s__11 __pyx_mstate_global->__pyx_kp_s__11
4523 : #define __pyx_kp_s__12 __pyx_mstate_global->__pyx_kp_s__12
4524 : #define __pyx_kp_u__12 __pyx_mstate_global->__pyx_kp_u__12
4525 : #define __pyx_kp_u__2 __pyx_mstate_global->__pyx_kp_u__2
4526 : #define __pyx_n_s__3 __pyx_mstate_global->__pyx_n_s__3
4527 : #define __pyx_n_s__30 __pyx_mstate_global->__pyx_n_s__30
4528 : #define __pyx_kp_u__6 __pyx_mstate_global->__pyx_kp_u__6
4529 : #define __pyx_kp_u__7 __pyx_mstate_global->__pyx_kp_u__7
4530 : #define __pyx_n_s_abc __pyx_mstate_global->__pyx_n_s_abc
4531 : #define __pyx_n_s_allocate_buffer __pyx_mstate_global->__pyx_n_s_allocate_buffer
4532 : #define __pyx_kp_u_and __pyx_mstate_global->__pyx_kp_u_and
4533 : #define __pyx_n_s_args __pyx_mstate_global->__pyx_n_s_args
4534 : #define __pyx_n_s_asyncio_coroutines __pyx_mstate_global->__pyx_n_s_asyncio_coroutines
4535 : #define __pyx_n_s_base __pyx_mstate_global->__pyx_n_s_base
4536 : #define __pyx_n_s_c __pyx_mstate_global->__pyx_n_s_c
4537 : #define __pyx_n_u_c __pyx_mstate_global->__pyx_n_u_c
4538 : #define __pyx_n_s_class __pyx_mstate_global->__pyx_n_s_class
4539 : #define __pyx_n_s_class_getitem __pyx_mstate_global->__pyx_n_s_class_getitem
4540 : #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback
4541 : #define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections
4542 : #define __pyx_kp_s_collections_abc __pyx_mstate_global->__pyx_kp_s_collections_abc
4543 : #define __pyx_kp_s_contiguous_and_direct __pyx_mstate_global->__pyx_kp_s_contiguous_and_direct
4544 : #define __pyx_kp_s_contiguous_and_indirect __pyx_mstate_global->__pyx_kp_s_contiguous_and_indirect
4545 : #define __pyx_n_s_count __pyx_mstate_global->__pyx_n_s_count
4546 : #define __pyx_n_s_defaults __pyx_mstate_global->__pyx_n_s_defaults
4547 : #define __pyx_n_s_dict __pyx_mstate_global->__pyx_n_s_dict
4548 : #define __pyx_kp_u_disable __pyx_mstate_global->__pyx_kp_u_disable
4549 : #define __pyx_n_s_double __pyx_mstate_global->__pyx_n_s_double
4550 : #define __pyx_kp_s_double_complex __pyx_mstate_global->__pyx_kp_s_double_complex
4551 : #define __pyx_n_s_dtype __pyx_mstate_global->__pyx_n_s_dtype
4552 : #define __pyx_n_s_dtype_is_object __pyx_mstate_global->__pyx_n_s_dtype_is_object
4553 : #define __pyx_kp_u_enable __pyx_mstate_global->__pyx_kp_u_enable
4554 : #define __pyx_n_s_encode __pyx_mstate_global->__pyx_n_s_encode
4555 : #define __pyx_n_s_enumerate __pyx_mstate_global->__pyx_n_s_enumerate
4556 : #define __pyx_n_s_error __pyx_mstate_global->__pyx_n_s_error
4557 : #define __pyx_n_s_flags __pyx_mstate_global->__pyx_n_s_flags
4558 : #define __pyx_n_s_float __pyx_mstate_global->__pyx_n_s_float
4559 : #define __pyx_kp_s_float_complex __pyx_mstate_global->__pyx_kp_s_float_complex
4560 : #define __pyx_n_s_format __pyx_mstate_global->__pyx_n_s_format
4561 : #define __pyx_n_s_fortran __pyx_mstate_global->__pyx_n_s_fortran
4562 : #define __pyx_n_u_fortran __pyx_mstate_global->__pyx_n_u_fortran
4563 : #define __pyx_n_s_fused_sigindex __pyx_mstate_global->__pyx_n_s_fused_sigindex
4564 : #define __pyx_kp_u_gc __pyx_mstate_global->__pyx_kp_u_gc
4565 : #define __pyx_n_s_get __pyx_mstate_global->__pyx_n_s_get
4566 : #define __pyx_n_s_getstate __pyx_mstate_global->__pyx_n_s_getstate
4567 : #define __pyx_kp_u_got __pyx_mstate_global->__pyx_kp_u_got
4568 : #define __pyx_kp_u_got_differing_extents_in_dimensi __pyx_mstate_global->__pyx_kp_u_got_differing_extents_in_dimensi
4569 : #define __pyx_kp_s_home_czgdp18079_Quansight_scipy __pyx_mstate_global->__pyx_kp_s_home_czgdp18079_Quansight_scipy
4570 : #define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i
4571 : #define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id
4572 : #define __pyx_n_s_import __pyx_mstate_global->__pyx_n_s_import
4573 : #define __pyx_n_s_index __pyx_mstate_global->__pyx_n_s_index
4574 : #define __pyx_n_s_initializing __pyx_mstate_global->__pyx_n_s_initializing
4575 : #define __pyx_n_s_is_coroutine __pyx_mstate_global->__pyx_n_s_is_coroutine
4576 : #define __pyx_kp_u_isenabled __pyx_mstate_global->__pyx_kp_u_isenabled
4577 : #define __pyx_n_s_itemsize __pyx_mstate_global->__pyx_n_s_itemsize
4578 : #define __pyx_kp_s_itemsize_0_for_cython_array __pyx_mstate_global->__pyx_kp_s_itemsize_0_for_cython_array
4579 : #define __pyx_n_s_kind __pyx_mstate_global->__pyx_n_s_kind
4580 : #define __pyx_n_s_kwargs __pyx_mstate_global->__pyx_n_s_kwargs
4581 : #define __pyx_kp_s_long_double __pyx_mstate_global->__pyx_kp_s_long_double
4582 : #define __pyx_kp_s_long_double_complex __pyx_mstate_global->__pyx_kp_s_long_double_complex
4583 : #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main
4584 : #define __pyx_n_s_memview __pyx_mstate_global->__pyx_n_s_memview
4585 : #define __pyx_n_s_mode __pyx_mstate_global->__pyx_n_s_mode
4586 : #define __pyx_n_s_n __pyx_mstate_global->__pyx_n_s_n
4587 : #define __pyx_n_s_n_samples __pyx_mstate_global->__pyx_n_s_n_samples
4588 : #define __pyx_n_s_n_sections __pyx_mstate_global->__pyx_n_s_n_sections
4589 : #define __pyx_n_s_n_signals __pyx_mstate_global->__pyx_n_s_n_signals
4590 : #define __pyx_n_s_name __pyx_mstate_global->__pyx_n_s_name
4591 : #define __pyx_n_s_name_2 __pyx_mstate_global->__pyx_n_s_name_2
4592 : #define __pyx_n_s_ndim __pyx_mstate_global->__pyx_n_s_ndim
4593 : #define __pyx_n_s_new __pyx_mstate_global->__pyx_n_s_new
4594 : #define __pyx_kp_s_no_default___reduce___due_to_non __pyx_mstate_global->__pyx_kp_s_no_default___reduce___due_to_non
4595 : #define __pyx_n_s_numpy __pyx_mstate_global->__pyx_n_s_numpy
4596 : #define __pyx_kp_u_numpy__core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_u_numpy__core_multiarray_failed_to
4597 : #define __pyx_kp_u_numpy__core_umath_failed_to_impo __pyx_mstate_global->__pyx_kp_u_numpy__core_umath_failed_to_impo
4598 : #define __pyx_n_s_obj __pyx_mstate_global->__pyx_n_s_obj
4599 : #define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object
4600 : #define __pyx_n_s_pack __pyx_mstate_global->__pyx_n_s_pack
4601 : #define __pyx_n_s_pickle __pyx_mstate_global->__pyx_n_s_pickle
4602 : #define __pyx_n_s_pyx_PickleError __pyx_mstate_global->__pyx_n_s_pyx_PickleError
4603 : #define __pyx_n_s_pyx_checksum __pyx_mstate_global->__pyx_n_s_pyx_checksum
4604 : #define __pyx_n_s_pyx_result __pyx_mstate_global->__pyx_n_s_pyx_result
4605 : #define __pyx_n_s_pyx_state __pyx_mstate_global->__pyx_n_s_pyx_state
4606 : #define __pyx_n_s_pyx_type __pyx_mstate_global->__pyx_n_s_pyx_type
4607 : #define __pyx_n_s_pyx_unpickle_Enum __pyx_mstate_global->__pyx_n_s_pyx_unpickle_Enum
4608 : #define __pyx_n_s_pyx_vtable __pyx_mstate_global->__pyx_n_s_pyx_vtable
4609 : #define __pyx_n_s_range __pyx_mstate_global->__pyx_n_s_range
4610 : #define __pyx_n_s_reduce __pyx_mstate_global->__pyx_n_s_reduce
4611 : #define __pyx_n_s_reduce_cython __pyx_mstate_global->__pyx_n_s_reduce_cython
4612 : #define __pyx_n_s_reduce_ex __pyx_mstate_global->__pyx_n_s_reduce_ex
4613 : #define __pyx_n_s_register __pyx_mstate_global->__pyx_n_s_register
4614 : #define __pyx_n_s_s __pyx_mstate_global->__pyx_n_s_s
4615 : #define __pyx_n_s_scipy_signal__sosfilt __pyx_mstate_global->__pyx_n_s_scipy_signal__sosfilt
4616 : #define __pyx_n_s_setstate __pyx_mstate_global->__pyx_n_s_setstate
4617 : #define __pyx_n_s_setstate_cython __pyx_mstate_global->__pyx_n_s_setstate_cython
4618 : #define __pyx_n_s_shape __pyx_mstate_global->__pyx_n_s_shape
4619 : #define __pyx_n_s_signatures __pyx_mstate_global->__pyx_n_s_signatures
4620 : #define __pyx_n_s_size __pyx_mstate_global->__pyx_n_s_size
4621 : #define __pyx_n_s_sos __pyx_mstate_global->__pyx_n_s_sos
4622 : #define __pyx_n_s_sosfilt __pyx_mstate_global->__pyx_n_s_sosfilt
4623 : #define __pyx_n_s_sosfilt_object __pyx_mstate_global->__pyx_n_s_sosfilt_object
4624 : #define __pyx_n_s_spec __pyx_mstate_global->__pyx_n_s_spec
4625 : #define __pyx_n_s_split __pyx_mstate_global->__pyx_n_s_split
4626 : #define __pyx_n_s_start __pyx_mstate_global->__pyx_n_s_start
4627 : #define __pyx_n_s_step __pyx_mstate_global->__pyx_n_s_step
4628 : #define __pyx_n_s_stop __pyx_mstate_global->__pyx_n_s_stop
4629 : #define __pyx_kp_s_strided_and_direct __pyx_mstate_global->__pyx_kp_s_strided_and_direct
4630 : #define __pyx_kp_s_strided_and_direct_or_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_direct_or_indirect
4631 : #define __pyx_kp_s_strided_and_indirect __pyx_mstate_global->__pyx_kp_s_strided_and_indirect
4632 : #define __pyx_kp_s_stringsource __pyx_mstate_global->__pyx_kp_s_stringsource
4633 : #define __pyx_n_s_strip __pyx_mstate_global->__pyx_n_s_strip
4634 : #define __pyx_n_s_struct __pyx_mstate_global->__pyx_n_s_struct
4635 : #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys
4636 : #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test
4637 : #define __pyx_kp_s_unable_to_allocate_array_data __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_array_data
4638 : #define __pyx_kp_s_unable_to_allocate_shape_and_str __pyx_mstate_global->__pyx_kp_s_unable_to_allocate_shape_and_str
4639 : #define __pyx_n_s_unpack __pyx_mstate_global->__pyx_n_s_unpack
4640 : #define __pyx_n_s_update __pyx_mstate_global->__pyx_n_s_update
4641 : #define __pyx_n_s_values __pyx_mstate_global->__pyx_n_s_values
4642 : #define __pyx_n_s_version_info __pyx_mstate_global->__pyx_n_s_version_info
4643 : #define __pyx_n_s_x __pyx_mstate_global->__pyx_n_s_x
4644 : #define __pyx_n_s_x_n __pyx_mstate_global->__pyx_n_s_x_n
4645 : #define __pyx_n_s_xrange __pyx_mstate_global->__pyx_n_s_xrange
4646 : #define __pyx_n_s_zi __pyx_mstate_global->__pyx_n_s_zi
4647 : #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0
4648 : #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1
4649 : #define __pyx_int_3 __pyx_mstate_global->__pyx_int_3
4650 : #define __pyx_int_112105877 __pyx_mstate_global->__pyx_int_112105877
4651 : #define __pyx_int_136983863 __pyx_mstate_global->__pyx_int_136983863
4652 : #define __pyx_int_184977713 __pyx_mstate_global->__pyx_int_184977713
4653 : #define __pyx_int_neg_1 __pyx_mstate_global->__pyx_int_neg_1
4654 : #define __pyx_slice__5 __pyx_mstate_global->__pyx_slice__5
4655 : #define __pyx_tuple__4 __pyx_mstate_global->__pyx_tuple__4
4656 : #define __pyx_tuple__8 __pyx_mstate_global->__pyx_tuple__8
4657 : #define __pyx_tuple__9 __pyx_mstate_global->__pyx_tuple__9
4658 : #define __pyx_tuple__10 __pyx_mstate_global->__pyx_tuple__10
4659 : #define __pyx_tuple__13 __pyx_mstate_global->__pyx_tuple__13
4660 : #define __pyx_tuple__14 __pyx_mstate_global->__pyx_tuple__14
4661 : #define __pyx_tuple__15 __pyx_mstate_global->__pyx_tuple__15
4662 : #define __pyx_tuple__16 __pyx_mstate_global->__pyx_tuple__16
4663 : #define __pyx_tuple__17 __pyx_mstate_global->__pyx_tuple__17
4664 : #define __pyx_tuple__18 __pyx_mstate_global->__pyx_tuple__18
4665 : #define __pyx_tuple__19 __pyx_mstate_global->__pyx_tuple__19
4666 : #define __pyx_tuple__20 __pyx_mstate_global->__pyx_tuple__20
4667 : #define __pyx_tuple__21 __pyx_mstate_global->__pyx_tuple__21
4668 : #define __pyx_tuple__22 __pyx_mstate_global->__pyx_tuple__22
4669 : #define __pyx_tuple__23 __pyx_mstate_global->__pyx_tuple__23
4670 : #define __pyx_tuple__24 __pyx_mstate_global->__pyx_tuple__24
4671 : #define __pyx_tuple__26 __pyx_mstate_global->__pyx_tuple__26
4672 : #define __pyx_tuple__28 __pyx_mstate_global->__pyx_tuple__28
4673 : #define __pyx_codeobj__25 __pyx_mstate_global->__pyx_codeobj__25
4674 : #define __pyx_codeobj__27 __pyx_mstate_global->__pyx_codeobj__27
4675 : #define __pyx_codeobj__29 __pyx_mstate_global->__pyx_codeobj__29
4676 : /* #### Code section: module_code ### */
4677 :
4678 : /* "View.MemoryView":131
4679 : * cdef bint dtype_is_object
4680 : *
4681 : * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
4682 : * mode="c", bint allocate_buffer=True):
4683 : *
4684 : */
4685 :
4686 : /* Python wrapper */
4687 : static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
4688 0 : static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
4689 0 : PyObject *__pyx_v_shape = 0;
4690 0 : Py_ssize_t __pyx_v_itemsize;
4691 0 : PyObject *__pyx_v_format = 0;
4692 0 : PyObject *__pyx_v_mode = 0;
4693 0 : int __pyx_v_allocate_buffer;
4694 0 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
4695 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
4696 0 : PyObject* values[5] = {0,0,0,0,0};
4697 0 : int __pyx_lineno = 0;
4698 0 : const char *__pyx_filename = NULL;
4699 0 : int __pyx_clineno = 0;
4700 0 : int __pyx_r;
4701 : __Pyx_RefNannyDeclarations
4702 0 : __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
4703 : #if CYTHON_ASSUME_SAFE_MACROS
4704 0 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
4705 : #else
4706 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
4707 : #endif
4708 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
4709 : {
4710 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0};
4711 0 : values[3] = __Pyx_Arg_NewRef_VARARGS(((PyObject *)__pyx_n_s_c));
4712 0 : if (__pyx_kwds) {
4713 0 : Py_ssize_t kw_args;
4714 0 : switch (__pyx_nargs) {
4715 0 : case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
4716 0 : CYTHON_FALLTHROUGH;
4717 0 : case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
4718 0 : CYTHON_FALLTHROUGH;
4719 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
4720 0 : CYTHON_FALLTHROUGH;
4721 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
4722 0 : CYTHON_FALLTHROUGH;
4723 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
4724 0 : CYTHON_FALLTHROUGH;
4725 0 : case 0: break;
4726 0 : default: goto __pyx_L5_argtuple_error;
4727 : }
4728 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
4729 0 : switch (__pyx_nargs) {
4730 0 : case 0:
4731 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_shape)) != 0)) {
4732 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
4733 0 : kw_args--;
4734 : }
4735 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4736 0 : else goto __pyx_L5_argtuple_error;
4737 0 : CYTHON_FALLTHROUGH;
4738 : case 1:
4739 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_itemsize)) != 0)) {
4740 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
4741 0 : kw_args--;
4742 : }
4743 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4744 : else {
4745 0 : __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(1, 131, __pyx_L3_error)
4746 : }
4747 0 : CYTHON_FALLTHROUGH;
4748 : case 2:
4749 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_format)) != 0)) {
4750 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
4751 0 : kw_args--;
4752 : }
4753 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4754 : else {
4755 0 : __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(1, 131, __pyx_L3_error)
4756 : }
4757 0 : CYTHON_FALLTHROUGH;
4758 : case 3:
4759 0 : if (kw_args > 0) {
4760 0 : PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_mode);
4761 0 : if (value) { values[3] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
4762 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4763 : }
4764 0 : CYTHON_FALLTHROUGH;
4765 : case 4:
4766 0 : if (kw_args > 0) {
4767 0 : PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_allocate_buffer);
4768 0 : if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
4769 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4770 : }
4771 : }
4772 0 : if (unlikely(kw_args > 0)) {
4773 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
4774 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(1, 131, __pyx_L3_error)
4775 : }
4776 : } else {
4777 0 : switch (__pyx_nargs) {
4778 0 : case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
4779 0 : CYTHON_FALLTHROUGH;
4780 0 : case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
4781 0 : CYTHON_FALLTHROUGH;
4782 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
4783 0 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
4784 0 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
4785 0 : break;
4786 0 : default: goto __pyx_L5_argtuple_error;
4787 : }
4788 : }
4789 0 : __pyx_v_shape = ((PyObject*)values[0]);
4790 0 : __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 131, __pyx_L3_error)
4791 0 : __pyx_v_format = values[2];
4792 0 : __pyx_v_mode = values[3];
4793 0 : if (values[4]) {
4794 0 : __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 132, __pyx_L3_error)
4795 : } else {
4796 :
4797 : /* "View.MemoryView":132
4798 : *
4799 : * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None,
4800 : * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<<
4801 : *
4802 : * cdef int idx
4803 : */
4804 : __pyx_v_allocate_buffer = ((int)1);
4805 : }
4806 : }
4807 0 : goto __pyx_L6_skip;
4808 0 : __pyx_L5_argtuple_error:;
4809 0 : __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, __pyx_nargs); __PYX_ERR(1, 131, __pyx_L3_error)
4810 0 : __pyx_L6_skip:;
4811 0 : goto __pyx_L4_argument_unpacking_done;
4812 0 : __pyx_L3_error:;
4813 : {
4814 0 : Py_ssize_t __pyx_temp;
4815 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
4816 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
4817 : }
4818 : }
4819 0 : __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
4820 0 : __Pyx_RefNannyFinishContext();
4821 0 : return -1;
4822 0 : __pyx_L4_argument_unpacking_done:;
4823 0 : if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(1, 131, __pyx_L1_error)
4824 0 : if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) {
4825 0 : PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(1, 131, __pyx_L1_error)
4826 : }
4827 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer);
4828 :
4829 : /* "View.MemoryView":131
4830 : * cdef bint dtype_is_object
4831 : *
4832 : * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
4833 : * mode="c", bint allocate_buffer=True):
4834 : *
4835 : */
4836 :
4837 : /* function exit code */
4838 0 : goto __pyx_L0;
4839 : __pyx_L1_error:;
4840 : __pyx_r = -1;
4841 0 : __pyx_L0:;
4842 : {
4843 0 : Py_ssize_t __pyx_temp;
4844 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
4845 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
4846 : }
4847 : }
4848 : __Pyx_RefNannyFinishContext();
4849 : return __pyx_r;
4850 : }
4851 :
4852 0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) {
4853 0 : int __pyx_v_idx;
4854 0 : Py_ssize_t __pyx_v_dim;
4855 0 : char __pyx_v_order;
4856 0 : int __pyx_r;
4857 : __Pyx_RefNannyDeclarations
4858 0 : Py_ssize_t __pyx_t_1;
4859 0 : int __pyx_t_2;
4860 0 : int __pyx_t_3;
4861 0 : PyObject *__pyx_t_4 = NULL;
4862 0 : PyObject *__pyx_t_5 = NULL;
4863 0 : PyObject *__pyx_t_6 = NULL;
4864 0 : unsigned int __pyx_t_7;
4865 0 : char *__pyx_t_8;
4866 0 : int __pyx_t_9;
4867 0 : Py_ssize_t __pyx_t_10;
4868 0 : Py_UCS4 __pyx_t_11;
4869 0 : int __pyx_lineno = 0;
4870 0 : const char *__pyx_filename = NULL;
4871 0 : int __pyx_clineno = 0;
4872 0 : __Pyx_RefNannySetupContext("__cinit__", 0);
4873 0 : __Pyx_INCREF(__pyx_v_format);
4874 :
4875 : /* "View.MemoryView":137
4876 : * cdef Py_ssize_t dim
4877 : *
4878 : * self.ndim = <int> len(shape) # <<<<<<<<<<<<<<
4879 : * self.itemsize = itemsize
4880 : *
4881 : */
4882 0 : if (unlikely(__pyx_v_shape == Py_None)) {
4883 0 : PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
4884 0 : __PYX_ERR(1, 137, __pyx_L1_error)
4885 : }
4886 0 : __pyx_t_1 = __Pyx_PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(1, 137, __pyx_L1_error)
4887 0 : __pyx_v_self->ndim = ((int)__pyx_t_1);
4888 :
4889 : /* "View.MemoryView":138
4890 : *
4891 : * self.ndim = <int> len(shape)
4892 : * self.itemsize = itemsize # <<<<<<<<<<<<<<
4893 : *
4894 : * if not self.ndim:
4895 : */
4896 0 : __pyx_v_self->itemsize = __pyx_v_itemsize;
4897 :
4898 : /* "View.MemoryView":140
4899 : * self.itemsize = itemsize
4900 : *
4901 : * if not self.ndim: # <<<<<<<<<<<<<<
4902 : * raise ValueError, "Empty shape tuple for cython.array"
4903 : *
4904 : */
4905 0 : __pyx_t_2 = (!(__pyx_v_self->ndim != 0));
4906 0 : if (unlikely(__pyx_t_2)) {
4907 :
4908 : /* "View.MemoryView":141
4909 : *
4910 : * if not self.ndim:
4911 : * raise ValueError, "Empty shape tuple for cython.array" # <<<<<<<<<<<<<<
4912 : *
4913 : * if itemsize <= 0:
4914 : */
4915 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Empty_shape_tuple_for_cython_arr, 0, 0);
4916 0 : __PYX_ERR(1, 141, __pyx_L1_error)
4917 :
4918 : /* "View.MemoryView":140
4919 : * self.itemsize = itemsize
4920 : *
4921 : * if not self.ndim: # <<<<<<<<<<<<<<
4922 : * raise ValueError, "Empty shape tuple for cython.array"
4923 : *
4924 : */
4925 : }
4926 :
4927 : /* "View.MemoryView":143
4928 : * raise ValueError, "Empty shape tuple for cython.array"
4929 : *
4930 : * if itemsize <= 0: # <<<<<<<<<<<<<<
4931 : * raise ValueError, "itemsize <= 0 for cython.array"
4932 : *
4933 : */
4934 0 : __pyx_t_2 = (__pyx_v_itemsize <= 0);
4935 0 : if (unlikely(__pyx_t_2)) {
4936 :
4937 : /* "View.MemoryView":144
4938 : *
4939 : * if itemsize <= 0:
4940 : * raise ValueError, "itemsize <= 0 for cython.array" # <<<<<<<<<<<<<<
4941 : *
4942 : * if not isinstance(format, bytes):
4943 : */
4944 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_itemsize_0_for_cython_array, 0, 0);
4945 0 : __PYX_ERR(1, 144, __pyx_L1_error)
4946 :
4947 : /* "View.MemoryView":143
4948 : * raise ValueError, "Empty shape tuple for cython.array"
4949 : *
4950 : * if itemsize <= 0: # <<<<<<<<<<<<<<
4951 : * raise ValueError, "itemsize <= 0 for cython.array"
4952 : *
4953 : */
4954 : }
4955 :
4956 : /* "View.MemoryView":146
4957 : * raise ValueError, "itemsize <= 0 for cython.array"
4958 : *
4959 : * if not isinstance(format, bytes): # <<<<<<<<<<<<<<
4960 : * format = format.encode('ASCII')
4961 : * self._format = format # keep a reference to the byte string
4962 : */
4963 0 : __pyx_t_2 = PyBytes_Check(__pyx_v_format);
4964 0 : __pyx_t_3 = (!__pyx_t_2);
4965 0 : if (__pyx_t_3) {
4966 :
4967 : /* "View.MemoryView":147
4968 : *
4969 : * if not isinstance(format, bytes):
4970 : * format = format.encode('ASCII') # <<<<<<<<<<<<<<
4971 : * self._format = format # keep a reference to the byte string
4972 : * self.format = self._format
4973 : */
4974 0 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 147, __pyx_L1_error)
4975 0 : __Pyx_GOTREF(__pyx_t_5);
4976 0 : __pyx_t_6 = NULL;
4977 0 : __pyx_t_7 = 0;
4978 : #if CYTHON_UNPACK_METHODS
4979 0 : if (likely(PyMethod_Check(__pyx_t_5))) {
4980 0 : __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
4981 0 : if (likely(__pyx_t_6)) {
4982 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
4983 0 : __Pyx_INCREF(__pyx_t_6);
4984 0 : __Pyx_INCREF(function);
4985 0 : __Pyx_DECREF_SET(__pyx_t_5, function);
4986 : __pyx_t_7 = 1;
4987 : }
4988 : }
4989 : #endif
4990 : {
4991 0 : PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_n_s_ASCII};
4992 0 : __pyx_t_4 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_7, 1+__pyx_t_7);
4993 0 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
4994 0 : if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 147, __pyx_L1_error)
4995 0 : __Pyx_GOTREF(__pyx_t_4);
4996 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
4997 : }
4998 0 : __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_4);
4999 : __pyx_t_4 = 0;
5000 :
5001 : /* "View.MemoryView":146
5002 : * raise ValueError, "itemsize <= 0 for cython.array"
5003 : *
5004 : * if not isinstance(format, bytes): # <<<<<<<<<<<<<<
5005 : * format = format.encode('ASCII')
5006 : * self._format = format # keep a reference to the byte string
5007 : */
5008 : }
5009 :
5010 : /* "View.MemoryView":148
5011 : * if not isinstance(format, bytes):
5012 : * format = format.encode('ASCII')
5013 : * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<<
5014 : * self.format = self._format
5015 : *
5016 : */
5017 0 : if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_v_format))) __PYX_ERR(1, 148, __pyx_L1_error)
5018 0 : __pyx_t_4 = __pyx_v_format;
5019 0 : __Pyx_INCREF(__pyx_t_4);
5020 0 : __Pyx_GIVEREF(__pyx_t_4);
5021 0 : __Pyx_GOTREF(__pyx_v_self->_format);
5022 0 : __Pyx_DECREF(__pyx_v_self->_format);
5023 0 : __pyx_v_self->_format = ((PyObject*)__pyx_t_4);
5024 0 : __pyx_t_4 = 0;
5025 :
5026 : /* "View.MemoryView":149
5027 : * format = format.encode('ASCII')
5028 : * self._format = format # keep a reference to the byte string
5029 : * self.format = self._format # <<<<<<<<<<<<<<
5030 : *
5031 : *
5032 : */
5033 0 : if (unlikely(__pyx_v_self->_format == Py_None)) {
5034 0 : PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found");
5035 0 : __PYX_ERR(1, 149, __pyx_L1_error)
5036 : }
5037 0 : __pyx_t_8 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_8) && PyErr_Occurred())) __PYX_ERR(1, 149, __pyx_L1_error)
5038 0 : __pyx_v_self->format = __pyx_t_8;
5039 :
5040 : /* "View.MemoryView":152
5041 : *
5042 : *
5043 : * self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<<
5044 : * self._strides = self._shape + self.ndim
5045 : *
5046 : */
5047 0 : __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2)));
5048 :
5049 : /* "View.MemoryView":153
5050 : *
5051 : * self._shape = <Py_ssize_t *> PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2)
5052 : * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<<
5053 : *
5054 : * if not self._shape:
5055 : */
5056 0 : __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim);
5057 :
5058 : /* "View.MemoryView":155
5059 : * self._strides = self._shape + self.ndim
5060 : *
5061 : * if not self._shape: # <<<<<<<<<<<<<<
5062 : * raise MemoryError, "unable to allocate shape and strides."
5063 : *
5064 : */
5065 0 : __pyx_t_3 = (!(__pyx_v_self->_shape != 0));
5066 0 : if (unlikely(__pyx_t_3)) {
5067 :
5068 : /* "View.MemoryView":156
5069 : *
5070 : * if not self._shape:
5071 : * raise MemoryError, "unable to allocate shape and strides." # <<<<<<<<<<<<<<
5072 : *
5073 : *
5074 : */
5075 0 : __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_shape_and_str, 0, 0);
5076 0 : __PYX_ERR(1, 156, __pyx_L1_error)
5077 :
5078 : /* "View.MemoryView":155
5079 : * self._strides = self._shape + self.ndim
5080 : *
5081 : * if not self._shape: # <<<<<<<<<<<<<<
5082 : * raise MemoryError, "unable to allocate shape and strides."
5083 : *
5084 : */
5085 : }
5086 :
5087 : /* "View.MemoryView":159
5088 : *
5089 : *
5090 : * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<<
5091 : * if dim <= 0:
5092 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}."
5093 : */
5094 0 : __pyx_t_9 = 0;
5095 0 : __pyx_t_4 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_4);
5096 : __pyx_t_1 = 0;
5097 0 : for (;;) {
5098 0 : {
5099 0 : Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_4);
5100 : #if !CYTHON_ASSUME_SAFE_MACROS
5101 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 159, __pyx_L1_error)
5102 : #endif
5103 0 : if (__pyx_t_1 >= __pyx_temp) break;
5104 : }
5105 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
5106 0 : __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely((0 < 0))) __PYX_ERR(1, 159, __pyx_L1_error)
5107 : #else
5108 : __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 159, __pyx_L1_error)
5109 : __Pyx_GOTREF(__pyx_t_5);
5110 : #endif
5111 0 : __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 159, __pyx_L1_error)
5112 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5113 0 : __pyx_v_dim = __pyx_t_10;
5114 0 : __pyx_v_idx = __pyx_t_9;
5115 0 : __pyx_t_9 = (__pyx_t_9 + 1);
5116 :
5117 : /* "View.MemoryView":160
5118 : *
5119 : * for idx, dim in enumerate(shape):
5120 : * if dim <= 0: # <<<<<<<<<<<<<<
5121 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}."
5122 : * self._shape[idx] = dim
5123 : */
5124 0 : __pyx_t_3 = (__pyx_v_dim <= 0);
5125 0 : if (unlikely(__pyx_t_3)) {
5126 :
5127 : /* "View.MemoryView":161
5128 : * for idx, dim in enumerate(shape):
5129 : * if dim <= 0:
5130 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}." # <<<<<<<<<<<<<<
5131 : * self._shape[idx] = dim
5132 : *
5133 : */
5134 0 : __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 161, __pyx_L1_error)
5135 0 : __Pyx_GOTREF(__pyx_t_5);
5136 0 : __pyx_t_10 = 0;
5137 0 : __pyx_t_11 = 127;
5138 0 : __Pyx_INCREF(__pyx_kp_u_Invalid_shape_in_axis);
5139 0 : __pyx_t_10 += 22;
5140 0 : __Pyx_GIVEREF(__pyx_kp_u_Invalid_shape_in_axis);
5141 0 : PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Invalid_shape_in_axis);
5142 0 : __pyx_t_6 = __Pyx_PyUnicode_From_int(__pyx_v_idx, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
5143 0 : __Pyx_GOTREF(__pyx_t_6);
5144 0 : __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
5145 0 : __Pyx_GIVEREF(__pyx_t_6);
5146 0 : PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
5147 0 : __pyx_t_6 = 0;
5148 0 : __Pyx_INCREF(__pyx_kp_u_);
5149 0 : __pyx_t_10 += 2;
5150 0 : __Pyx_GIVEREF(__pyx_kp_u_);
5151 0 : PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u_);
5152 0 : __pyx_t_6 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
5153 0 : __Pyx_GOTREF(__pyx_t_6);
5154 0 : __pyx_t_10 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_6);
5155 0 : __Pyx_GIVEREF(__pyx_t_6);
5156 0 : PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_6);
5157 0 : __pyx_t_6 = 0;
5158 0 : __Pyx_INCREF(__pyx_kp_u__2);
5159 0 : __pyx_t_10 += 1;
5160 0 : __Pyx_GIVEREF(__pyx_kp_u__2);
5161 0 : PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_kp_u__2);
5162 0 : __pyx_t_6 = __Pyx_PyUnicode_Join(__pyx_t_5, 5, __pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 161, __pyx_L1_error)
5163 0 : __Pyx_GOTREF(__pyx_t_6);
5164 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
5165 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
5166 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5167 0 : __PYX_ERR(1, 161, __pyx_L1_error)
5168 :
5169 : /* "View.MemoryView":160
5170 : *
5171 : * for idx, dim in enumerate(shape):
5172 : * if dim <= 0: # <<<<<<<<<<<<<<
5173 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}."
5174 : * self._shape[idx] = dim
5175 : */
5176 : }
5177 :
5178 : /* "View.MemoryView":162
5179 : * if dim <= 0:
5180 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}."
5181 : * self._shape[idx] = dim # <<<<<<<<<<<<<<
5182 : *
5183 : * cdef char order
5184 : */
5185 0 : (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim;
5186 :
5187 : /* "View.MemoryView":159
5188 : *
5189 : *
5190 : * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<<
5191 : * if dim <= 0:
5192 : * raise ValueError, f"Invalid shape in axis {idx}: {dim}."
5193 : */
5194 : }
5195 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5196 :
5197 : /* "View.MemoryView":165
5198 : *
5199 : * cdef char order
5200 : * if mode == 'c': # <<<<<<<<<<<<<<
5201 : * order = b'C'
5202 : * self.mode = u'c'
5203 : */
5204 0 : __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 165, __pyx_L1_error)
5205 0 : if (__pyx_t_3) {
5206 :
5207 : /* "View.MemoryView":166
5208 : * cdef char order
5209 : * if mode == 'c':
5210 : * order = b'C' # <<<<<<<<<<<<<<
5211 : * self.mode = u'c'
5212 : * elif mode == 'fortran':
5213 : */
5214 0 : __pyx_v_order = 'C';
5215 :
5216 : /* "View.MemoryView":167
5217 : * if mode == 'c':
5218 : * order = b'C'
5219 : * self.mode = u'c' # <<<<<<<<<<<<<<
5220 : * elif mode == 'fortran':
5221 : * order = b'F'
5222 : */
5223 0 : __Pyx_INCREF(__pyx_n_u_c);
5224 0 : __Pyx_GIVEREF(__pyx_n_u_c);
5225 0 : __Pyx_GOTREF(__pyx_v_self->mode);
5226 0 : __Pyx_DECREF(__pyx_v_self->mode);
5227 0 : __pyx_v_self->mode = __pyx_n_u_c;
5228 :
5229 : /* "View.MemoryView":165
5230 : *
5231 : * cdef char order
5232 : * if mode == 'c': # <<<<<<<<<<<<<<
5233 : * order = b'C'
5234 : * self.mode = u'c'
5235 : */
5236 0 : goto __pyx_L11;
5237 : }
5238 :
5239 : /* "View.MemoryView":168
5240 : * order = b'C'
5241 : * self.mode = u'c'
5242 : * elif mode == 'fortran': # <<<<<<<<<<<<<<
5243 : * order = b'F'
5244 : * self.mode = u'fortran'
5245 : */
5246 0 : __pyx_t_3 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(1, 168, __pyx_L1_error)
5247 0 : if (likely(__pyx_t_3)) {
5248 :
5249 : /* "View.MemoryView":169
5250 : * self.mode = u'c'
5251 : * elif mode == 'fortran':
5252 : * order = b'F' # <<<<<<<<<<<<<<
5253 : * self.mode = u'fortran'
5254 : * else:
5255 : */
5256 0 : __pyx_v_order = 'F';
5257 :
5258 : /* "View.MemoryView":170
5259 : * elif mode == 'fortran':
5260 : * order = b'F'
5261 : * self.mode = u'fortran' # <<<<<<<<<<<<<<
5262 : * else:
5263 : * raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
5264 : */
5265 0 : __Pyx_INCREF(__pyx_n_u_fortran);
5266 0 : __Pyx_GIVEREF(__pyx_n_u_fortran);
5267 0 : __Pyx_GOTREF(__pyx_v_self->mode);
5268 0 : __Pyx_DECREF(__pyx_v_self->mode);
5269 0 : __pyx_v_self->mode = __pyx_n_u_fortran;
5270 :
5271 : /* "View.MemoryView":168
5272 : * order = b'C'
5273 : * self.mode = u'c'
5274 : * elif mode == 'fortran': # <<<<<<<<<<<<<<
5275 : * order = b'F'
5276 : * self.mode = u'fortran'
5277 : */
5278 0 : goto __pyx_L11;
5279 : }
5280 :
5281 : /* "View.MemoryView":172
5282 : * self.mode = u'fortran'
5283 : * else:
5284 : * raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}" # <<<<<<<<<<<<<<
5285 : *
5286 : * self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
5287 : */
5288 : /*else*/ {
5289 0 : __pyx_t_4 = __Pyx_PyObject_FormatSimple(__pyx_v_mode, __pyx_empty_unicode); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 172, __pyx_L1_error)
5290 0 : __Pyx_GOTREF(__pyx_t_4);
5291 0 : __pyx_t_6 = __Pyx_PyUnicode_Concat(__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 172, __pyx_L1_error)
5292 0 : __Pyx_GOTREF(__pyx_t_6);
5293 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
5294 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_6, 0, 0);
5295 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5296 0 : __PYX_ERR(1, 172, __pyx_L1_error)
5297 : }
5298 0 : __pyx_L11:;
5299 :
5300 : /* "View.MemoryView":174
5301 : * raise ValueError, f"Invalid mode, expected 'c' or 'fortran', got {mode}"
5302 : *
5303 : * self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order) # <<<<<<<<<<<<<<
5304 : *
5305 : * self.free_data = allocate_buffer
5306 : */
5307 0 : __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order);
5308 :
5309 : /* "View.MemoryView":176
5310 : * self.len = fill_contig_strides_array(self._shape, self._strides, itemsize, self.ndim, order)
5311 : *
5312 : * self.free_data = allocate_buffer # <<<<<<<<<<<<<<
5313 : * self.dtype_is_object = format == b'O'
5314 : *
5315 : */
5316 0 : __pyx_v_self->free_data = __pyx_v_allocate_buffer;
5317 :
5318 : /* "View.MemoryView":177
5319 : *
5320 : * self.free_data = allocate_buffer
5321 : * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<<
5322 : *
5323 : * if allocate_buffer:
5324 : */
5325 0 : __pyx_t_6 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 177, __pyx_L1_error)
5326 0 : __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 177, __pyx_L1_error)
5327 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
5328 0 : __pyx_v_self->dtype_is_object = __pyx_t_3;
5329 :
5330 : /* "View.MemoryView":179
5331 : * self.dtype_is_object = format == b'O'
5332 : *
5333 : * if allocate_buffer: # <<<<<<<<<<<<<<
5334 : * _allocate_buffer(self)
5335 : *
5336 : */
5337 0 : if (__pyx_v_allocate_buffer) {
5338 :
5339 : /* "View.MemoryView":180
5340 : *
5341 : * if allocate_buffer:
5342 : * _allocate_buffer(self) # <<<<<<<<<<<<<<
5343 : *
5344 : * @cname('getbuffer')
5345 : */
5346 0 : __pyx_t_9 = __pyx_array_allocate_buffer(__pyx_v_self); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 180, __pyx_L1_error)
5347 :
5348 : /* "View.MemoryView":179
5349 : * self.dtype_is_object = format == b'O'
5350 : *
5351 : * if allocate_buffer: # <<<<<<<<<<<<<<
5352 : * _allocate_buffer(self)
5353 : *
5354 : */
5355 : }
5356 :
5357 : /* "View.MemoryView":131
5358 : * cdef bint dtype_is_object
5359 : *
5360 : * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<<
5361 : * mode="c", bint allocate_buffer=True):
5362 : *
5363 : */
5364 :
5365 : /* function exit code */
5366 0 : __pyx_r = 0;
5367 0 : goto __pyx_L0;
5368 0 : __pyx_L1_error:;
5369 0 : __Pyx_XDECREF(__pyx_t_4);
5370 0 : __Pyx_XDECREF(__pyx_t_5);
5371 0 : __Pyx_XDECREF(__pyx_t_6);
5372 0 : __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5373 0 : __pyx_r = -1;
5374 0 : __pyx_L0:;
5375 0 : __Pyx_XDECREF(__pyx_v_format);
5376 0 : __Pyx_RefNannyFinishContext();
5377 0 : return __pyx_r;
5378 : }
5379 :
5380 : /* "View.MemoryView":182
5381 : * _allocate_buffer(self)
5382 : *
5383 : * @cname('getbuffer') # <<<<<<<<<<<<<<
5384 : * def __getbuffer__(self, Py_buffer *info, int flags):
5385 : * cdef int bufmode = -1
5386 : */
5387 :
5388 : /* Python wrapper */
5389 : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
5390 0 : CYTHON_UNUSED static int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
5391 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
5392 0 : int __pyx_r;
5393 : __Pyx_RefNannyDeclarations
5394 0 : __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
5395 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
5396 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
5397 :
5398 : /* function exit code */
5399 0 : __Pyx_RefNannyFinishContext();
5400 0 : return __pyx_r;
5401 : }
5402 :
5403 0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
5404 0 : int __pyx_v_bufmode;
5405 0 : int __pyx_r;
5406 : __Pyx_RefNannyDeclarations
5407 0 : int __pyx_t_1;
5408 0 : char *__pyx_t_2;
5409 0 : Py_ssize_t __pyx_t_3;
5410 0 : int __pyx_t_4;
5411 0 : Py_ssize_t *__pyx_t_5;
5412 0 : int __pyx_lineno = 0;
5413 0 : const char *__pyx_filename = NULL;
5414 0 : int __pyx_clineno = 0;
5415 0 : if (unlikely(__pyx_v_info == NULL)) {
5416 0 : PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
5417 0 : return -1;
5418 : }
5419 0 : __Pyx_RefNannySetupContext("__getbuffer__", 0);
5420 0 : __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
5421 0 : __Pyx_GIVEREF(__pyx_v_info->obj);
5422 :
5423 : /* "View.MemoryView":184
5424 : * @cname('getbuffer')
5425 : * def __getbuffer__(self, Py_buffer *info, int flags):
5426 : * cdef int bufmode = -1 # <<<<<<<<<<<<<<
5427 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
5428 : * if self.mode == u"c":
5429 : */
5430 0 : __pyx_v_bufmode = -1;
5431 :
5432 : /* "View.MemoryView":185
5433 : * def __getbuffer__(self, Py_buffer *info, int flags):
5434 : * cdef int bufmode = -1
5435 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS): # <<<<<<<<<<<<<<
5436 : * if self.mode == u"c":
5437 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5438 : */
5439 0 : __pyx_t_1 = ((__pyx_v_flags & ((PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS) | PyBUF_ANY_CONTIGUOUS)) != 0);
5440 0 : if (__pyx_t_1) {
5441 :
5442 : /* "View.MemoryView":186
5443 : * cdef int bufmode = -1
5444 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
5445 : * if self.mode == u"c": # <<<<<<<<<<<<<<
5446 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5447 : * elif self.mode == u"fortran":
5448 : */
5449 0 : __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 186, __pyx_L1_error)
5450 0 : if (__pyx_t_1) {
5451 :
5452 : /* "View.MemoryView":187
5453 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
5454 : * if self.mode == u"c":
5455 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<<
5456 : * elif self.mode == u"fortran":
5457 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5458 : */
5459 0 : __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
5460 :
5461 : /* "View.MemoryView":186
5462 : * cdef int bufmode = -1
5463 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS):
5464 : * if self.mode == u"c": # <<<<<<<<<<<<<<
5465 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5466 : * elif self.mode == u"fortran":
5467 : */
5468 0 : goto __pyx_L4;
5469 : }
5470 :
5471 : /* "View.MemoryView":188
5472 : * if self.mode == u"c":
5473 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5474 : * elif self.mode == u"fortran": # <<<<<<<<<<<<<<
5475 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5476 : * if not (flags & bufmode):
5477 : */
5478 0 : __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 188, __pyx_L1_error)
5479 0 : if (__pyx_t_1) {
5480 :
5481 : /* "View.MemoryView":189
5482 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5483 : * elif self.mode == u"fortran":
5484 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<<
5485 : * if not (flags & bufmode):
5486 : * raise ValueError, "Can only create a buffer that is contiguous in memory."
5487 : */
5488 0 : __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS);
5489 :
5490 : /* "View.MemoryView":188
5491 : * if self.mode == u"c":
5492 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5493 : * elif self.mode == u"fortran": # <<<<<<<<<<<<<<
5494 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5495 : * if not (flags & bufmode):
5496 : */
5497 : }
5498 0 : __pyx_L4:;
5499 :
5500 : /* "View.MemoryView":190
5501 : * elif self.mode == u"fortran":
5502 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5503 : * if not (flags & bufmode): # <<<<<<<<<<<<<<
5504 : * raise ValueError, "Can only create a buffer that is contiguous in memory."
5505 : * info.buf = self.data
5506 : */
5507 0 : __pyx_t_1 = (!((__pyx_v_flags & __pyx_v_bufmode) != 0));
5508 0 : if (unlikely(__pyx_t_1)) {
5509 :
5510 : /* "View.MemoryView":191
5511 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5512 : * if not (flags & bufmode):
5513 : * raise ValueError, "Can only create a buffer that is contiguous in memory." # <<<<<<<<<<<<<<
5514 : * info.buf = self.data
5515 : * info.len = self.len
5516 : */
5517 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Can_only_create_a_buffer_that_is, 0, 0);
5518 0 : __PYX_ERR(1, 191, __pyx_L1_error)
5519 :
5520 : /* "View.MemoryView":190
5521 : * elif self.mode == u"fortran":
5522 : * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5523 : * if not (flags & bufmode): # <<<<<<<<<<<<<<
5524 : * raise ValueError, "Can only create a buffer that is contiguous in memory."
5525 : * info.buf = self.data
5526 : */
5527 : }
5528 :
5529 : /* "View.MemoryView":185
5530 : * def __getbuffer__(self, Py_buffer *info, int flags):
5531 : * cdef int bufmode = -1
5532 : * if flags & (PyBUF_C_CONTIGUOUS | PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS): # <<<<<<<<<<<<<<
5533 : * if self.mode == u"c":
5534 : * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS
5535 : */
5536 : }
5537 :
5538 : /* "View.MemoryView":192
5539 : * if not (flags & bufmode):
5540 : * raise ValueError, "Can only create a buffer that is contiguous in memory."
5541 : * info.buf = self.data # <<<<<<<<<<<<<<
5542 : * info.len = self.len
5543 : *
5544 : */
5545 0 : __pyx_t_2 = __pyx_v_self->data;
5546 0 : __pyx_v_info->buf = __pyx_t_2;
5547 :
5548 : /* "View.MemoryView":193
5549 : * raise ValueError, "Can only create a buffer that is contiguous in memory."
5550 : * info.buf = self.data
5551 : * info.len = self.len # <<<<<<<<<<<<<<
5552 : *
5553 : * if flags & PyBUF_STRIDES:
5554 : */
5555 0 : __pyx_t_3 = __pyx_v_self->len;
5556 0 : __pyx_v_info->len = __pyx_t_3;
5557 :
5558 : /* "View.MemoryView":195
5559 : * info.len = self.len
5560 : *
5561 : * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
5562 : * info.ndim = self.ndim
5563 : * info.shape = self._shape
5564 : */
5565 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
5566 0 : if (__pyx_t_1) {
5567 :
5568 : /* "View.MemoryView":196
5569 : *
5570 : * if flags & PyBUF_STRIDES:
5571 : * info.ndim = self.ndim # <<<<<<<<<<<<<<
5572 : * info.shape = self._shape
5573 : * info.strides = self._strides
5574 : */
5575 0 : __pyx_t_4 = __pyx_v_self->ndim;
5576 0 : __pyx_v_info->ndim = __pyx_t_4;
5577 :
5578 : /* "View.MemoryView":197
5579 : * if flags & PyBUF_STRIDES:
5580 : * info.ndim = self.ndim
5581 : * info.shape = self._shape # <<<<<<<<<<<<<<
5582 : * info.strides = self._strides
5583 : * else:
5584 : */
5585 0 : __pyx_t_5 = __pyx_v_self->_shape;
5586 0 : __pyx_v_info->shape = __pyx_t_5;
5587 :
5588 : /* "View.MemoryView":198
5589 : * info.ndim = self.ndim
5590 : * info.shape = self._shape
5591 : * info.strides = self._strides # <<<<<<<<<<<<<<
5592 : * else:
5593 : * info.ndim = 1
5594 : */
5595 0 : __pyx_t_5 = __pyx_v_self->_strides;
5596 0 : __pyx_v_info->strides = __pyx_t_5;
5597 :
5598 : /* "View.MemoryView":195
5599 : * info.len = self.len
5600 : *
5601 : * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
5602 : * info.ndim = self.ndim
5603 : * info.shape = self._shape
5604 : */
5605 0 : goto __pyx_L6;
5606 : }
5607 :
5608 : /* "View.MemoryView":200
5609 : * info.strides = self._strides
5610 : * else:
5611 : * info.ndim = 1 # <<<<<<<<<<<<<<
5612 : * info.shape = &self.len if flags & PyBUF_ND else NULL
5613 : * info.strides = NULL
5614 : */
5615 : /*else*/ {
5616 0 : __pyx_v_info->ndim = 1;
5617 :
5618 : /* "View.MemoryView":201
5619 : * else:
5620 : * info.ndim = 1
5621 : * info.shape = &self.len if flags & PyBUF_ND else NULL # <<<<<<<<<<<<<<
5622 : * info.strides = NULL
5623 : *
5624 : */
5625 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
5626 0 : if (__pyx_t_1) {
5627 : __pyx_t_5 = (&__pyx_v_self->len);
5628 : } else {
5629 : __pyx_t_5 = NULL;
5630 : }
5631 0 : __pyx_v_info->shape = __pyx_t_5;
5632 :
5633 : /* "View.MemoryView":202
5634 : * info.ndim = 1
5635 : * info.shape = &self.len if flags & PyBUF_ND else NULL
5636 : * info.strides = NULL # <<<<<<<<<<<<<<
5637 : *
5638 : * info.suboffsets = NULL
5639 : */
5640 0 : __pyx_v_info->strides = NULL;
5641 : }
5642 0 : __pyx_L6:;
5643 :
5644 : /* "View.MemoryView":204
5645 : * info.strides = NULL
5646 : *
5647 : * info.suboffsets = NULL # <<<<<<<<<<<<<<
5648 : * info.itemsize = self.itemsize
5649 : * info.readonly = 0
5650 : */
5651 0 : __pyx_v_info->suboffsets = NULL;
5652 :
5653 : /* "View.MemoryView":205
5654 : *
5655 : * info.suboffsets = NULL
5656 : * info.itemsize = self.itemsize # <<<<<<<<<<<<<<
5657 : * info.readonly = 0
5658 : * info.format = self.format if flags & PyBUF_FORMAT else NULL
5659 : */
5660 0 : __pyx_t_3 = __pyx_v_self->itemsize;
5661 0 : __pyx_v_info->itemsize = __pyx_t_3;
5662 :
5663 : /* "View.MemoryView":206
5664 : * info.suboffsets = NULL
5665 : * info.itemsize = self.itemsize
5666 : * info.readonly = 0 # <<<<<<<<<<<<<<
5667 : * info.format = self.format if flags & PyBUF_FORMAT else NULL
5668 : * info.obj = self
5669 : */
5670 0 : __pyx_v_info->readonly = 0;
5671 :
5672 : /* "View.MemoryView":207
5673 : * info.itemsize = self.itemsize
5674 : * info.readonly = 0
5675 : * info.format = self.format if flags & PyBUF_FORMAT else NULL # <<<<<<<<<<<<<<
5676 : * info.obj = self
5677 : *
5678 : */
5679 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
5680 0 : if (__pyx_t_1) {
5681 0 : __pyx_t_2 = __pyx_v_self->format;
5682 : } else {
5683 : __pyx_t_2 = NULL;
5684 : }
5685 0 : __pyx_v_info->format = __pyx_t_2;
5686 :
5687 : /* "View.MemoryView":208
5688 : * info.readonly = 0
5689 : * info.format = self.format if flags & PyBUF_FORMAT else NULL
5690 : * info.obj = self # <<<<<<<<<<<<<<
5691 : *
5692 : * def __dealloc__(array self):
5693 : */
5694 0 : __Pyx_INCREF((PyObject *)__pyx_v_self);
5695 0 : __Pyx_GIVEREF((PyObject *)__pyx_v_self);
5696 0 : __Pyx_GOTREF(__pyx_v_info->obj);
5697 0 : __Pyx_DECREF(__pyx_v_info->obj);
5698 0 : __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
5699 :
5700 : /* "View.MemoryView":182
5701 : * _allocate_buffer(self)
5702 : *
5703 : * @cname('getbuffer') # <<<<<<<<<<<<<<
5704 : * def __getbuffer__(self, Py_buffer *info, int flags):
5705 : * cdef int bufmode = -1
5706 : */
5707 :
5708 : /* function exit code */
5709 0 : __pyx_r = 0;
5710 0 : goto __pyx_L0;
5711 0 : __pyx_L1_error:;
5712 0 : __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5713 0 : __pyx_r = -1;
5714 0 : if (__pyx_v_info->obj != NULL) {
5715 0 : __Pyx_GOTREF(__pyx_v_info->obj);
5716 0 : __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
5717 : }
5718 0 : goto __pyx_L2;
5719 0 : __pyx_L0:;
5720 0 : if (__pyx_v_info->obj == Py_None) {
5721 0 : __Pyx_GOTREF(__pyx_v_info->obj);
5722 0 : __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
5723 : }
5724 0 : __pyx_L2:;
5725 : __Pyx_RefNannyFinishContext();
5726 : return __pyx_r;
5727 : }
5728 :
5729 : /* "View.MemoryView":210
5730 : * info.obj = self
5731 : *
5732 : * def __dealloc__(array self): # <<<<<<<<<<<<<<
5733 : * if self.callback_free_data != NULL:
5734 : * self.callback_free_data(self.data)
5735 : */
5736 :
5737 : /* Python wrapper */
5738 : static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/
5739 0 : static void __pyx_array___dealloc__(PyObject *__pyx_v_self) {
5740 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
5741 : __Pyx_RefNannyDeclarations
5742 0 : __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
5743 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
5744 0 : __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self));
5745 :
5746 : /* function exit code */
5747 0 : __Pyx_RefNannyFinishContext();
5748 : }
5749 :
5750 0 : static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) {
5751 0 : int __pyx_t_1;
5752 0 : int __pyx_t_2;
5753 :
5754 : /* "View.MemoryView":211
5755 : *
5756 : * def __dealloc__(array self):
5757 : * if self.callback_free_data != NULL: # <<<<<<<<<<<<<<
5758 : * self.callback_free_data(self.data)
5759 : * elif self.free_data and self.data is not NULL:
5760 : */
5761 0 : __pyx_t_1 = (__pyx_v_self->callback_free_data != NULL);
5762 0 : if (__pyx_t_1) {
5763 :
5764 : /* "View.MemoryView":212
5765 : * def __dealloc__(array self):
5766 : * if self.callback_free_data != NULL:
5767 : * self.callback_free_data(self.data) # <<<<<<<<<<<<<<
5768 : * elif self.free_data and self.data is not NULL:
5769 : * if self.dtype_is_object:
5770 : */
5771 0 : __pyx_v_self->callback_free_data(__pyx_v_self->data);
5772 :
5773 : /* "View.MemoryView":211
5774 : *
5775 : * def __dealloc__(array self):
5776 : * if self.callback_free_data != NULL: # <<<<<<<<<<<<<<
5777 : * self.callback_free_data(self.data)
5778 : * elif self.free_data and self.data is not NULL:
5779 : */
5780 0 : goto __pyx_L3;
5781 : }
5782 :
5783 : /* "View.MemoryView":213
5784 : * if self.callback_free_data != NULL:
5785 : * self.callback_free_data(self.data)
5786 : * elif self.free_data and self.data is not NULL: # <<<<<<<<<<<<<<
5787 : * if self.dtype_is_object:
5788 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5789 : */
5790 0 : if (__pyx_v_self->free_data) {
5791 0 : } else {
5792 0 : __pyx_t_1 = __pyx_v_self->free_data;
5793 0 : goto __pyx_L4_bool_binop_done;
5794 : }
5795 0 : __pyx_t_2 = (__pyx_v_self->data != NULL);
5796 0 : __pyx_t_1 = __pyx_t_2;
5797 0 : __pyx_L4_bool_binop_done:;
5798 0 : if (__pyx_t_1) {
5799 :
5800 : /* "View.MemoryView":214
5801 : * self.callback_free_data(self.data)
5802 : * elif self.free_data and self.data is not NULL:
5803 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
5804 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5805 : * free(self.data)
5806 : */
5807 0 : if (__pyx_v_self->dtype_is_object) {
5808 :
5809 : /* "View.MemoryView":215
5810 : * elif self.free_data and self.data is not NULL:
5811 : * if self.dtype_is_object:
5812 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False) # <<<<<<<<<<<<<<
5813 : * free(self.data)
5814 : * PyObject_Free(self._shape)
5815 : */
5816 0 : __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0);
5817 :
5818 : /* "View.MemoryView":214
5819 : * self.callback_free_data(self.data)
5820 : * elif self.free_data and self.data is not NULL:
5821 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
5822 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5823 : * free(self.data)
5824 : */
5825 : }
5826 :
5827 : /* "View.MemoryView":216
5828 : * if self.dtype_is_object:
5829 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5830 : * free(self.data) # <<<<<<<<<<<<<<
5831 : * PyObject_Free(self._shape)
5832 : *
5833 : */
5834 0 : free(__pyx_v_self->data);
5835 :
5836 : /* "View.MemoryView":213
5837 : * if self.callback_free_data != NULL:
5838 : * self.callback_free_data(self.data)
5839 : * elif self.free_data and self.data is not NULL: # <<<<<<<<<<<<<<
5840 : * if self.dtype_is_object:
5841 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5842 : */
5843 : }
5844 0 : __pyx_L3:;
5845 :
5846 : /* "View.MemoryView":217
5847 : * refcount_objects_in_slice(self.data, self._shape, self._strides, self.ndim, inc=False)
5848 : * free(self.data)
5849 : * PyObject_Free(self._shape) # <<<<<<<<<<<<<<
5850 : *
5851 : * @property
5852 : */
5853 0 : PyObject_Free(__pyx_v_self->_shape);
5854 :
5855 : /* "View.MemoryView":210
5856 : * info.obj = self
5857 : *
5858 : * def __dealloc__(array self): # <<<<<<<<<<<<<<
5859 : * if self.callback_free_data != NULL:
5860 : * self.callback_free_data(self.data)
5861 : */
5862 :
5863 : /* function exit code */
5864 0 : }
5865 :
5866 : /* "View.MemoryView":219
5867 : * PyObject_Free(self._shape)
5868 : *
5869 : * @property # <<<<<<<<<<<<<<
5870 : * def memview(self):
5871 : * return self.get_memview()
5872 : */
5873 :
5874 : /* Python wrapper */
5875 : static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/
5876 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) {
5877 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
5878 0 : PyObject *__pyx_r = 0;
5879 : __Pyx_RefNannyDeclarations
5880 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
5881 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
5882 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self));
5883 :
5884 : /* function exit code */
5885 0 : __Pyx_RefNannyFinishContext();
5886 0 : return __pyx_r;
5887 : }
5888 :
5889 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) {
5890 0 : PyObject *__pyx_r = NULL;
5891 : __Pyx_RefNannyDeclarations
5892 0 : PyObject *__pyx_t_1 = NULL;
5893 0 : int __pyx_lineno = 0;
5894 0 : const char *__pyx_filename = NULL;
5895 0 : int __pyx_clineno = 0;
5896 0 : __Pyx_RefNannySetupContext("__get__", 1);
5897 :
5898 : /* "View.MemoryView":221
5899 : * @property
5900 : * def memview(self):
5901 : * return self.get_memview() # <<<<<<<<<<<<<<
5902 : *
5903 : * @cname('get_memview')
5904 : */
5905 0 : __Pyx_XDECREF(__pyx_r);
5906 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 221, __pyx_L1_error)
5907 0 : __Pyx_GOTREF(__pyx_t_1);
5908 0 : __pyx_r = __pyx_t_1;
5909 0 : __pyx_t_1 = 0;
5910 0 : goto __pyx_L0;
5911 :
5912 : /* "View.MemoryView":219
5913 : * PyObject_Free(self._shape)
5914 : *
5915 : * @property # <<<<<<<<<<<<<<
5916 : * def memview(self):
5917 : * return self.get_memview()
5918 : */
5919 :
5920 : /* function exit code */
5921 0 : __pyx_L1_error:;
5922 0 : __Pyx_XDECREF(__pyx_t_1);
5923 0 : __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
5924 0 : __pyx_r = NULL;
5925 0 : __pyx_L0:;
5926 0 : __Pyx_XGIVEREF(__pyx_r);
5927 0 : __Pyx_RefNannyFinishContext();
5928 0 : return __pyx_r;
5929 : }
5930 :
5931 : /* "View.MemoryView":224
5932 : *
5933 : * @cname('get_memview')
5934 : * cdef get_memview(self): # <<<<<<<<<<<<<<
5935 : * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
5936 : * return memoryview(self, flags, self.dtype_is_object)
5937 : */
5938 :
5939 0 : static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) {
5940 0 : int __pyx_v_flags;
5941 0 : PyObject *__pyx_r = NULL;
5942 : __Pyx_RefNannyDeclarations
5943 0 : PyObject *__pyx_t_1 = NULL;
5944 0 : PyObject *__pyx_t_2 = NULL;
5945 0 : PyObject *__pyx_t_3 = NULL;
5946 0 : int __pyx_lineno = 0;
5947 0 : const char *__pyx_filename = NULL;
5948 0 : int __pyx_clineno = 0;
5949 0 : __Pyx_RefNannySetupContext("get_memview", 1);
5950 :
5951 : /* "View.MemoryView":225
5952 : * @cname('get_memview')
5953 : * cdef get_memview(self):
5954 : * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<<
5955 : * return memoryview(self, flags, self.dtype_is_object)
5956 : *
5957 : */
5958 0 : __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE);
5959 :
5960 : /* "View.MemoryView":226
5961 : * cdef get_memview(self):
5962 : * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
5963 : * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<<
5964 : *
5965 : * def __len__(self):
5966 : */
5967 0 : __Pyx_XDECREF(__pyx_r);
5968 0 : __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error)
5969 0 : __Pyx_GOTREF(__pyx_t_1);
5970 0 : __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error)
5971 0 : __Pyx_GOTREF(__pyx_t_2);
5972 0 : __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 226, __pyx_L1_error)
5973 0 : __Pyx_GOTREF(__pyx_t_3);
5974 0 : __Pyx_INCREF((PyObject *)__pyx_v_self);
5975 0 : __Pyx_GIVEREF((PyObject *)__pyx_v_self);
5976 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self))) __PYX_ERR(1, 226, __pyx_L1_error);
5977 0 : __Pyx_GIVEREF(__pyx_t_1);
5978 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 226, __pyx_L1_error);
5979 0 : __Pyx_GIVEREF(__pyx_t_2);
5980 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error);
5981 0 : __pyx_t_1 = 0;
5982 0 : __pyx_t_2 = 0;
5983 0 : __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 226, __pyx_L1_error)
5984 0 : __Pyx_GOTREF(__pyx_t_2);
5985 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
5986 0 : __pyx_r = __pyx_t_2;
5987 0 : __pyx_t_2 = 0;
5988 0 : goto __pyx_L0;
5989 :
5990 : /* "View.MemoryView":224
5991 : *
5992 : * @cname('get_memview')
5993 : * cdef get_memview(self): # <<<<<<<<<<<<<<
5994 : * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE
5995 : * return memoryview(self, flags, self.dtype_is_object)
5996 : */
5997 :
5998 : /* function exit code */
5999 0 : __pyx_L1_error:;
6000 0 : __Pyx_XDECREF(__pyx_t_1);
6001 0 : __Pyx_XDECREF(__pyx_t_2);
6002 0 : __Pyx_XDECREF(__pyx_t_3);
6003 0 : __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
6004 0 : __pyx_r = 0;
6005 0 : __pyx_L0:;
6006 0 : __Pyx_XGIVEREF(__pyx_r);
6007 0 : __Pyx_RefNannyFinishContext();
6008 0 : return __pyx_r;
6009 : }
6010 :
6011 : /* "View.MemoryView":228
6012 : * return memoryview(self, flags, self.dtype_is_object)
6013 : *
6014 : * def __len__(self): # <<<<<<<<<<<<<<
6015 : * return self._shape[0]
6016 : *
6017 : */
6018 :
6019 : /* Python wrapper */
6020 : static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/
6021 0 : static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) {
6022 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6023 0 : Py_ssize_t __pyx_r;
6024 : __Pyx_RefNannyDeclarations
6025 0 : __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
6026 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6027 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self));
6028 :
6029 : /* function exit code */
6030 0 : __Pyx_RefNannyFinishContext();
6031 0 : return __pyx_r;
6032 : }
6033 :
6034 0 : static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) {
6035 0 : Py_ssize_t __pyx_r;
6036 :
6037 : /* "View.MemoryView":229
6038 : *
6039 : * def __len__(self):
6040 : * return self._shape[0] # <<<<<<<<<<<<<<
6041 : *
6042 : * def __getattr__(self, attr):
6043 : */
6044 0 : __pyx_r = (__pyx_v_self->_shape[0]);
6045 0 : goto __pyx_L0;
6046 :
6047 : /* "View.MemoryView":228
6048 : * return memoryview(self, flags, self.dtype_is_object)
6049 : *
6050 : * def __len__(self): # <<<<<<<<<<<<<<
6051 : * return self._shape[0]
6052 : *
6053 : */
6054 :
6055 : /* function exit code */
6056 0 : __pyx_L0:;
6057 0 : return __pyx_r;
6058 : }
6059 :
6060 : /* "View.MemoryView":231
6061 : * return self._shape[0]
6062 : *
6063 : * def __getattr__(self, attr): # <<<<<<<<<<<<<<
6064 : * return getattr(self.memview, attr)
6065 : *
6066 : */
6067 :
6068 : /* Python wrapper */
6069 : static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/
6070 0 : static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) {
6071 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6072 0 : PyObject *__pyx_r = 0;
6073 : __Pyx_RefNannyDeclarations
6074 0 : __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0);
6075 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6076 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr));
6077 :
6078 : /* function exit code */
6079 0 : __Pyx_RefNannyFinishContext();
6080 0 : return __pyx_r;
6081 : }
6082 :
6083 0 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) {
6084 0 : PyObject *__pyx_r = NULL;
6085 : __Pyx_RefNannyDeclarations
6086 0 : PyObject *__pyx_t_1 = NULL;
6087 0 : PyObject *__pyx_t_2 = NULL;
6088 0 : int __pyx_lineno = 0;
6089 0 : const char *__pyx_filename = NULL;
6090 0 : int __pyx_clineno = 0;
6091 0 : __Pyx_RefNannySetupContext("__getattr__", 1);
6092 :
6093 : /* "View.MemoryView":232
6094 : *
6095 : * def __getattr__(self, attr):
6096 : * return getattr(self.memview, attr) # <<<<<<<<<<<<<<
6097 : *
6098 : * def __getitem__(self, item):
6099 : */
6100 0 : __Pyx_XDECREF(__pyx_r);
6101 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 232, __pyx_L1_error)
6102 0 : __Pyx_GOTREF(__pyx_t_1);
6103 0 : __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 232, __pyx_L1_error)
6104 0 : __Pyx_GOTREF(__pyx_t_2);
6105 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6106 0 : __pyx_r = __pyx_t_2;
6107 0 : __pyx_t_2 = 0;
6108 0 : goto __pyx_L0;
6109 :
6110 : /* "View.MemoryView":231
6111 : * return self._shape[0]
6112 : *
6113 : * def __getattr__(self, attr): # <<<<<<<<<<<<<<
6114 : * return getattr(self.memview, attr)
6115 : *
6116 : */
6117 :
6118 : /* function exit code */
6119 0 : __pyx_L1_error:;
6120 0 : __Pyx_XDECREF(__pyx_t_1);
6121 0 : __Pyx_XDECREF(__pyx_t_2);
6122 0 : __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6123 0 : __pyx_r = NULL;
6124 0 : __pyx_L0:;
6125 0 : __Pyx_XGIVEREF(__pyx_r);
6126 0 : __Pyx_RefNannyFinishContext();
6127 0 : return __pyx_r;
6128 : }
6129 :
6130 : /* "View.MemoryView":234
6131 : * return getattr(self.memview, attr)
6132 : *
6133 : * def __getitem__(self, item): # <<<<<<<<<<<<<<
6134 : * return self.memview[item]
6135 : *
6136 : */
6137 :
6138 : /* Python wrapper */
6139 : static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/
6140 0 : static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) {
6141 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6142 0 : PyObject *__pyx_r = 0;
6143 : __Pyx_RefNannyDeclarations
6144 0 : __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
6145 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6146 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item));
6147 :
6148 : /* function exit code */
6149 0 : __Pyx_RefNannyFinishContext();
6150 0 : return __pyx_r;
6151 : }
6152 :
6153 0 : static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) {
6154 0 : PyObject *__pyx_r = NULL;
6155 : __Pyx_RefNannyDeclarations
6156 0 : PyObject *__pyx_t_1 = NULL;
6157 0 : PyObject *__pyx_t_2 = NULL;
6158 0 : int __pyx_lineno = 0;
6159 0 : const char *__pyx_filename = NULL;
6160 0 : int __pyx_clineno = 0;
6161 0 : __Pyx_RefNannySetupContext("__getitem__", 1);
6162 :
6163 : /* "View.MemoryView":235
6164 : *
6165 : * def __getitem__(self, item):
6166 : * return self.memview[item] # <<<<<<<<<<<<<<
6167 : *
6168 : * def __setitem__(self, item, value):
6169 : */
6170 0 : __Pyx_XDECREF(__pyx_r);
6171 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 235, __pyx_L1_error)
6172 0 : __Pyx_GOTREF(__pyx_t_1);
6173 0 : __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 235, __pyx_L1_error)
6174 0 : __Pyx_GOTREF(__pyx_t_2);
6175 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6176 0 : __pyx_r = __pyx_t_2;
6177 0 : __pyx_t_2 = 0;
6178 0 : goto __pyx_L0;
6179 :
6180 : /* "View.MemoryView":234
6181 : * return getattr(self.memview, attr)
6182 : *
6183 : * def __getitem__(self, item): # <<<<<<<<<<<<<<
6184 : * return self.memview[item]
6185 : *
6186 : */
6187 :
6188 : /* function exit code */
6189 0 : __pyx_L1_error:;
6190 0 : __Pyx_XDECREF(__pyx_t_1);
6191 0 : __Pyx_XDECREF(__pyx_t_2);
6192 0 : __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6193 0 : __pyx_r = NULL;
6194 0 : __pyx_L0:;
6195 0 : __Pyx_XGIVEREF(__pyx_r);
6196 0 : __Pyx_RefNannyFinishContext();
6197 0 : return __pyx_r;
6198 : }
6199 :
6200 : /* "View.MemoryView":237
6201 : * return self.memview[item]
6202 : *
6203 : * def __setitem__(self, item, value): # <<<<<<<<<<<<<<
6204 : * self.memview[item] = value
6205 : *
6206 : */
6207 :
6208 : /* Python wrapper */
6209 : static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/
6210 0 : static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
6211 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6212 0 : int __pyx_r;
6213 : __Pyx_RefNannyDeclarations
6214 0 : __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
6215 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6216 0 : __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value));
6217 :
6218 : /* function exit code */
6219 0 : __Pyx_RefNannyFinishContext();
6220 0 : return __pyx_r;
6221 : }
6222 :
6223 0 : static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) {
6224 0 : int __pyx_r;
6225 : __Pyx_RefNannyDeclarations
6226 0 : PyObject *__pyx_t_1 = NULL;
6227 0 : int __pyx_lineno = 0;
6228 0 : const char *__pyx_filename = NULL;
6229 0 : int __pyx_clineno = 0;
6230 0 : __Pyx_RefNannySetupContext("__setitem__", 1);
6231 :
6232 : /* "View.MemoryView":238
6233 : *
6234 : * def __setitem__(self, item, value):
6235 : * self.memview[item] = value # <<<<<<<<<<<<<<
6236 : *
6237 : *
6238 : */
6239 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 238, __pyx_L1_error)
6240 0 : __Pyx_GOTREF(__pyx_t_1);
6241 0 : if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0))) __PYX_ERR(1, 238, __pyx_L1_error)
6242 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6243 :
6244 : /* "View.MemoryView":237
6245 : * return self.memview[item]
6246 : *
6247 : * def __setitem__(self, item, value): # <<<<<<<<<<<<<<
6248 : * self.memview[item] = value
6249 : *
6250 : */
6251 :
6252 : /* function exit code */
6253 0 : __pyx_r = 0;
6254 0 : goto __pyx_L0;
6255 0 : __pyx_L1_error:;
6256 0 : __Pyx_XDECREF(__pyx_t_1);
6257 0 : __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6258 0 : __pyx_r = -1;
6259 0 : __pyx_L0:;
6260 0 : __Pyx_RefNannyFinishContext();
6261 0 : return __pyx_r;
6262 : }
6263 :
6264 : /* "(tree fragment)":1
6265 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
6266 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6267 : * def __setstate_cython__(self, __pyx_state):
6268 : */
6269 :
6270 : /* Python wrapper */
6271 : static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self,
6272 : #if CYTHON_METH_FASTCALL
6273 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6274 : #else
6275 : PyObject *__pyx_args, PyObject *__pyx_kwds
6276 : #endif
6277 : ); /*proto*/
6278 0 : static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self,
6279 : #if CYTHON_METH_FASTCALL
6280 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6281 : #else
6282 : PyObject *__pyx_args, PyObject *__pyx_kwds
6283 : #endif
6284 : ) {
6285 : #if !CYTHON_METH_FASTCALL
6286 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6287 : #endif
6288 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6289 0 : PyObject *__pyx_r = 0;
6290 : __Pyx_RefNannyDeclarations
6291 0 : __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
6292 : #if !CYTHON_METH_FASTCALL
6293 : #if CYTHON_ASSUME_SAFE_MACROS
6294 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6295 : #else
6296 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6297 : #endif
6298 : #endif
6299 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6300 0 : if (unlikely(__pyx_nargs > 0)) {
6301 0 : __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
6302 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
6303 0 : __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self));
6304 :
6305 : /* function exit code */
6306 0 : __Pyx_RefNannyFinishContext();
6307 0 : return __pyx_r;
6308 : }
6309 :
6310 0 : static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) {
6311 0 : PyObject *__pyx_r = NULL;
6312 : __Pyx_RefNannyDeclarations
6313 0 : int __pyx_lineno = 0;
6314 0 : const char *__pyx_filename = NULL;
6315 0 : int __pyx_clineno = 0;
6316 0 : __Pyx_RefNannySetupContext("__reduce_cython__", 1);
6317 :
6318 : /* "(tree fragment)":2
6319 : * def __reduce_cython__(self):
6320 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
6321 : * def __setstate_cython__(self, __pyx_state):
6322 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6323 : */
6324 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
6325 0 : __PYX_ERR(1, 2, __pyx_L1_error)
6326 :
6327 : /* "(tree fragment)":1
6328 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
6329 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6330 : * def __setstate_cython__(self, __pyx_state):
6331 : */
6332 :
6333 : /* function exit code */
6334 0 : __pyx_L1_error:;
6335 0 : __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6336 0 : __pyx_r = NULL;
6337 0 : __Pyx_XGIVEREF(__pyx_r);
6338 0 : __Pyx_RefNannyFinishContext();
6339 0 : return __pyx_r;
6340 : }
6341 :
6342 : /* "(tree fragment)":3
6343 : * def __reduce_cython__(self):
6344 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6345 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
6346 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6347 : */
6348 :
6349 : /* Python wrapper */
6350 : static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self,
6351 : #if CYTHON_METH_FASTCALL
6352 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6353 : #else
6354 : PyObject *__pyx_args, PyObject *__pyx_kwds
6355 : #endif
6356 : ); /*proto*/
6357 0 : static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self,
6358 : #if CYTHON_METH_FASTCALL
6359 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6360 : #else
6361 : PyObject *__pyx_args, PyObject *__pyx_kwds
6362 : #endif
6363 : ) {
6364 0 : CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
6365 : #if !CYTHON_METH_FASTCALL
6366 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6367 : #endif
6368 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6369 0 : PyObject* values[1] = {0};
6370 0 : int __pyx_lineno = 0;
6371 0 : const char *__pyx_filename = NULL;
6372 0 : int __pyx_clineno = 0;
6373 0 : PyObject *__pyx_r = 0;
6374 : __Pyx_RefNannyDeclarations
6375 0 : __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
6376 : #if !CYTHON_METH_FASTCALL
6377 : #if CYTHON_ASSUME_SAFE_MACROS
6378 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6379 : #else
6380 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
6381 : #endif
6382 : #endif
6383 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
6384 : {
6385 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
6386 0 : if (__pyx_kwds) {
6387 0 : Py_ssize_t kw_args;
6388 0 : switch (__pyx_nargs) {
6389 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
6390 0 : CYTHON_FALLTHROUGH;
6391 0 : case 0: break;
6392 0 : default: goto __pyx_L5_argtuple_error;
6393 : }
6394 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
6395 0 : switch (__pyx_nargs) {
6396 : case 0:
6397 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
6398 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
6399 0 : kw_args--;
6400 : }
6401 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
6402 0 : else goto __pyx_L5_argtuple_error;
6403 : }
6404 0 : if (unlikely(kw_args > 0)) {
6405 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
6406 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
6407 : }
6408 0 : } else if (unlikely(__pyx_nargs != 1)) {
6409 0 : goto __pyx_L5_argtuple_error;
6410 : } else {
6411 0 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
6412 : }
6413 0 : __pyx_v___pyx_state = values[0];
6414 : }
6415 0 : goto __pyx_L6_skip;
6416 0 : __pyx_L5_argtuple_error:;
6417 0 : __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
6418 0 : __pyx_L6_skip:;
6419 0 : goto __pyx_L4_argument_unpacking_done;
6420 0 : __pyx_L3_error:;
6421 : {
6422 0 : Py_ssize_t __pyx_temp;
6423 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6424 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
6425 : }
6426 : }
6427 0 : __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6428 0 : __Pyx_RefNannyFinishContext();
6429 0 : return NULL;
6430 0 : __pyx_L4_argument_unpacking_done:;
6431 0 : __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v___pyx_state);
6432 :
6433 : /* function exit code */
6434 : {
6435 0 : Py_ssize_t __pyx_temp;
6436 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6437 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
6438 : }
6439 : }
6440 : __Pyx_RefNannyFinishContext();
6441 : return __pyx_r;
6442 : }
6443 :
6444 0 : static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
6445 0 : PyObject *__pyx_r = NULL;
6446 : __Pyx_RefNannyDeclarations
6447 0 : int __pyx_lineno = 0;
6448 0 : const char *__pyx_filename = NULL;
6449 0 : int __pyx_clineno = 0;
6450 0 : __Pyx_RefNannySetupContext("__setstate_cython__", 1);
6451 :
6452 : /* "(tree fragment)":4
6453 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6454 : * def __setstate_cython__(self, __pyx_state):
6455 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
6456 : */
6457 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
6458 0 : __PYX_ERR(1, 4, __pyx_L1_error)
6459 :
6460 : /* "(tree fragment)":3
6461 : * def __reduce_cython__(self):
6462 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6463 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
6464 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
6465 : */
6466 :
6467 : /* function exit code */
6468 0 : __pyx_L1_error:;
6469 0 : __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6470 0 : __pyx_r = NULL;
6471 0 : __Pyx_XGIVEREF(__pyx_r);
6472 0 : __Pyx_RefNannyFinishContext();
6473 0 : return __pyx_r;
6474 : }
6475 :
6476 : /* "View.MemoryView":248
6477 : *
6478 : * @cname("__pyx_array_allocate_buffer")
6479 : * cdef int _allocate_buffer(array self) except -1: # <<<<<<<<<<<<<<
6480 : *
6481 : *
6482 : */
6483 :
6484 0 : static int __pyx_array_allocate_buffer(struct __pyx_array_obj *__pyx_v_self) {
6485 0 : Py_ssize_t __pyx_v_i;
6486 0 : PyObject **__pyx_v_p;
6487 0 : int __pyx_r;
6488 0 : int __pyx_t_1;
6489 0 : Py_ssize_t __pyx_t_2;
6490 0 : Py_ssize_t __pyx_t_3;
6491 0 : Py_ssize_t __pyx_t_4;
6492 0 : int __pyx_lineno = 0;
6493 0 : const char *__pyx_filename = NULL;
6494 0 : int __pyx_clineno = 0;
6495 :
6496 : /* "View.MemoryView":254
6497 : * cdef PyObject **p
6498 : *
6499 : * self.free_data = True # <<<<<<<<<<<<<<
6500 : * self.data = <char *>malloc(self.len)
6501 : * if not self.data:
6502 : */
6503 0 : __pyx_v_self->free_data = 1;
6504 :
6505 : /* "View.MemoryView":255
6506 : *
6507 : * self.free_data = True
6508 : * self.data = <char *>malloc(self.len) # <<<<<<<<<<<<<<
6509 : * if not self.data:
6510 : * raise MemoryError, "unable to allocate array data."
6511 : */
6512 0 : __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len));
6513 :
6514 : /* "View.MemoryView":256
6515 : * self.free_data = True
6516 : * self.data = <char *>malloc(self.len)
6517 : * if not self.data: # <<<<<<<<<<<<<<
6518 : * raise MemoryError, "unable to allocate array data."
6519 : *
6520 : */
6521 0 : __pyx_t_1 = (!(__pyx_v_self->data != 0));
6522 0 : if (unlikely(__pyx_t_1)) {
6523 :
6524 : /* "View.MemoryView":257
6525 : * self.data = <char *>malloc(self.len)
6526 : * if not self.data:
6527 : * raise MemoryError, "unable to allocate array data." # <<<<<<<<<<<<<<
6528 : *
6529 : * if self.dtype_is_object:
6530 : */
6531 0 : __Pyx_Raise(__pyx_builtin_MemoryError, __pyx_kp_s_unable_to_allocate_array_data, 0, 0);
6532 0 : __PYX_ERR(1, 257, __pyx_L1_error)
6533 :
6534 : /* "View.MemoryView":256
6535 : * self.free_data = True
6536 : * self.data = <char *>malloc(self.len)
6537 : * if not self.data: # <<<<<<<<<<<<<<
6538 : * raise MemoryError, "unable to allocate array data."
6539 : *
6540 : */
6541 : }
6542 :
6543 : /* "View.MemoryView":259
6544 : * raise MemoryError, "unable to allocate array data."
6545 : *
6546 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
6547 : * p = <PyObject **> self.data
6548 : * for i in range(self.len // self.itemsize):
6549 : */
6550 0 : if (__pyx_v_self->dtype_is_object) {
6551 :
6552 : /* "View.MemoryView":260
6553 : *
6554 : * if self.dtype_is_object:
6555 : * p = <PyObject **> self.data # <<<<<<<<<<<<<<
6556 : * for i in range(self.len // self.itemsize):
6557 : * p[i] = Py_None
6558 : */
6559 0 : __pyx_v_p = ((PyObject **)__pyx_v_self->data);
6560 :
6561 : /* "View.MemoryView":261
6562 : * if self.dtype_is_object:
6563 : * p = <PyObject **> self.data
6564 : * for i in range(self.len // self.itemsize): # <<<<<<<<<<<<<<
6565 : * p[i] = Py_None
6566 : * Py_INCREF(Py_None)
6567 : */
6568 0 : if (unlikely(__pyx_v_self->itemsize == 0)) {
6569 0 : PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
6570 0 : __PYX_ERR(1, 261, __pyx_L1_error)
6571 : }
6572 0 : else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_self->itemsize == (Py_ssize_t)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) {
6573 0 : PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
6574 0 : __PYX_ERR(1, 261, __pyx_L1_error)
6575 : }
6576 0 : __pyx_t_2 = __Pyx_div_Py_ssize_t(__pyx_v_self->len, __pyx_v_self->itemsize);
6577 0 : __pyx_t_3 = __pyx_t_2;
6578 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
6579 0 : __pyx_v_i = __pyx_t_4;
6580 :
6581 : /* "View.MemoryView":262
6582 : * p = <PyObject **> self.data
6583 : * for i in range(self.len // self.itemsize):
6584 : * p[i] = Py_None # <<<<<<<<<<<<<<
6585 : * Py_INCREF(Py_None)
6586 : * return 0
6587 : */
6588 0 : (__pyx_v_p[__pyx_v_i]) = Py_None;
6589 :
6590 : /* "View.MemoryView":263
6591 : * for i in range(self.len // self.itemsize):
6592 : * p[i] = Py_None
6593 : * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
6594 : * return 0
6595 : *
6596 : */
6597 0 : Py_INCREF(Py_None);
6598 : }
6599 :
6600 : /* "View.MemoryView":259
6601 : * raise MemoryError, "unable to allocate array data."
6602 : *
6603 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
6604 : * p = <PyObject **> self.data
6605 : * for i in range(self.len // self.itemsize):
6606 : */
6607 : }
6608 :
6609 : /* "View.MemoryView":264
6610 : * p[i] = Py_None
6611 : * Py_INCREF(Py_None)
6612 : * return 0 # <<<<<<<<<<<<<<
6613 : *
6614 : *
6615 : */
6616 0 : __pyx_r = 0;
6617 0 : goto __pyx_L0;
6618 :
6619 : /* "View.MemoryView":248
6620 : *
6621 : * @cname("__pyx_array_allocate_buffer")
6622 : * cdef int _allocate_buffer(array self) except -1: # <<<<<<<<<<<<<<
6623 : *
6624 : *
6625 : */
6626 :
6627 : /* function exit code */
6628 0 : __pyx_L1_error:;
6629 0 : __Pyx_AddTraceback("View.MemoryView._allocate_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
6630 0 : __pyx_r = -1;
6631 0 : __pyx_L0:;
6632 0 : return __pyx_r;
6633 : }
6634 :
6635 : /* "View.MemoryView":268
6636 : *
6637 : * @cname("__pyx_array_new")
6638 : * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf): # <<<<<<<<<<<<<<
6639 : * cdef array result
6640 : * cdef str mode = "fortran" if c_mode[0] == b'f' else "c" # this often comes from a constant C string.
6641 : */
6642 :
6643 0 : static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_c_mode, char *__pyx_v_buf) {
6644 0 : struct __pyx_array_obj *__pyx_v_result = 0;
6645 0 : PyObject *__pyx_v_mode = 0;
6646 0 : struct __pyx_array_obj *__pyx_r = NULL;
6647 : __Pyx_RefNannyDeclarations
6648 0 : PyObject *__pyx_t_1 = NULL;
6649 0 : int __pyx_t_2;
6650 0 : PyObject *__pyx_t_3 = NULL;
6651 0 : PyObject *__pyx_t_4 = NULL;
6652 0 : int __pyx_lineno = 0;
6653 0 : const char *__pyx_filename = NULL;
6654 0 : int __pyx_clineno = 0;
6655 0 : __Pyx_RefNannySetupContext("array_cwrapper", 1);
6656 :
6657 : /* "View.MemoryView":270
6658 : * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf):
6659 : * cdef array result
6660 : * cdef str mode = "fortran" if c_mode[0] == b'f' else "c" # this often comes from a constant C string. # <<<<<<<<<<<<<<
6661 : *
6662 : * if buf is NULL:
6663 : */
6664 0 : __pyx_t_2 = ((__pyx_v_c_mode[0]) == 'f');
6665 0 : if (__pyx_t_2) {
6666 0 : __Pyx_INCREF(__pyx_n_s_fortran);
6667 : __pyx_t_1 = __pyx_n_s_fortran;
6668 : } else {
6669 0 : __Pyx_INCREF(__pyx_n_s_c);
6670 : __pyx_t_1 = __pyx_n_s_c;
6671 : }
6672 0 : __pyx_v_mode = ((PyObject*)__pyx_t_1);
6673 0 : __pyx_t_1 = 0;
6674 :
6675 : /* "View.MemoryView":272
6676 : * cdef str mode = "fortran" if c_mode[0] == b'f' else "c" # this often comes from a constant C string.
6677 : *
6678 : * if buf is NULL: # <<<<<<<<<<<<<<
6679 : * result = array.__new__(array, shape, itemsize, format, mode)
6680 : * else:
6681 : */
6682 0 : __pyx_t_2 = (__pyx_v_buf == NULL);
6683 0 : if (__pyx_t_2) {
6684 :
6685 : /* "View.MemoryView":273
6686 : *
6687 : * if buf is NULL:
6688 : * result = array.__new__(array, shape, itemsize, format, mode) # <<<<<<<<<<<<<<
6689 : * else:
6690 : * result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
6691 : */
6692 0 : __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 273, __pyx_L1_error)
6693 0 : __Pyx_GOTREF(__pyx_t_1);
6694 0 : __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
6695 0 : __Pyx_GOTREF(__pyx_t_3);
6696 0 : __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 273, __pyx_L1_error)
6697 0 : __Pyx_GOTREF(__pyx_t_4);
6698 0 : __Pyx_INCREF(__pyx_v_shape);
6699 0 : __Pyx_GIVEREF(__pyx_v_shape);
6700 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_shape)) __PYX_ERR(1, 273, __pyx_L1_error);
6701 0 : __Pyx_GIVEREF(__pyx_t_1);
6702 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 273, __pyx_L1_error);
6703 0 : __Pyx_GIVEREF(__pyx_t_3);
6704 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error);
6705 0 : __Pyx_INCREF(__pyx_v_mode);
6706 0 : __Pyx_GIVEREF(__pyx_v_mode);
6707 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_mode)) __PYX_ERR(1, 273, __pyx_L1_error);
6708 0 : __pyx_t_1 = 0;
6709 0 : __pyx_t_3 = 0;
6710 0 : __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_4, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 273, __pyx_L1_error)
6711 0 : __Pyx_GOTREF((PyObject *)__pyx_t_3);
6712 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6713 0 : __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
6714 0 : __pyx_t_3 = 0;
6715 :
6716 : /* "View.MemoryView":272
6717 : * cdef str mode = "fortran" if c_mode[0] == b'f' else "c" # this often comes from a constant C string.
6718 : *
6719 : * if buf is NULL: # <<<<<<<<<<<<<<
6720 : * result = array.__new__(array, shape, itemsize, format, mode)
6721 : * else:
6722 : */
6723 0 : goto __pyx_L3;
6724 : }
6725 :
6726 : /* "View.MemoryView":275
6727 : * result = array.__new__(array, shape, itemsize, format, mode)
6728 : * else:
6729 : * result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False) # <<<<<<<<<<<<<<
6730 : * result.data = buf
6731 : *
6732 : */
6733 : /*else*/ {
6734 0 : __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error)
6735 0 : __Pyx_GOTREF(__pyx_t_3);
6736 0 : __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error)
6737 0 : __Pyx_GOTREF(__pyx_t_4);
6738 0 : __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 275, __pyx_L1_error)
6739 0 : __Pyx_GOTREF(__pyx_t_1);
6740 0 : __Pyx_INCREF(__pyx_v_shape);
6741 0 : __Pyx_GIVEREF(__pyx_v_shape);
6742 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_shape)) __PYX_ERR(1, 275, __pyx_L1_error);
6743 0 : __Pyx_GIVEREF(__pyx_t_3);
6744 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error);
6745 0 : __Pyx_GIVEREF(__pyx_t_4);
6746 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error);
6747 0 : __Pyx_INCREF(__pyx_v_mode);
6748 0 : __Pyx_GIVEREF(__pyx_v_mode);
6749 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_v_mode)) __PYX_ERR(1, 275, __pyx_L1_error);
6750 0 : __pyx_t_3 = 0;
6751 0 : __pyx_t_4 = 0;
6752 0 : __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 275, __pyx_L1_error)
6753 0 : __Pyx_GOTREF(__pyx_t_4);
6754 0 : if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(1, 275, __pyx_L1_error)
6755 0 : __pyx_t_3 = ((PyObject *)__pyx_tp_new_array(((PyTypeObject *)__pyx_array_type), __pyx_t_1, __pyx_t_4)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 275, __pyx_L1_error)
6756 0 : __Pyx_GOTREF((PyObject *)__pyx_t_3);
6757 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
6758 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
6759 0 : __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_3);
6760 0 : __pyx_t_3 = 0;
6761 :
6762 : /* "View.MemoryView":276
6763 : * else:
6764 : * result = array.__new__(array, shape, itemsize, format, mode, allocate_buffer=False)
6765 : * result.data = buf # <<<<<<<<<<<<<<
6766 : *
6767 : * return result
6768 : */
6769 0 : __pyx_v_result->data = __pyx_v_buf;
6770 : }
6771 0 : __pyx_L3:;
6772 :
6773 : /* "View.MemoryView":278
6774 : * result.data = buf
6775 : *
6776 : * return result # <<<<<<<<<<<<<<
6777 : *
6778 : *
6779 : */
6780 0 : __Pyx_XDECREF((PyObject *)__pyx_r);
6781 0 : __Pyx_INCREF((PyObject *)__pyx_v_result);
6782 0 : __pyx_r = __pyx_v_result;
6783 0 : goto __pyx_L0;
6784 :
6785 : /* "View.MemoryView":268
6786 : *
6787 : * @cname("__pyx_array_new")
6788 : * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, char *c_mode, char *buf): # <<<<<<<<<<<<<<
6789 : * cdef array result
6790 : * cdef str mode = "fortran" if c_mode[0] == b'f' else "c" # this often comes from a constant C string.
6791 : */
6792 :
6793 : /* function exit code */
6794 0 : __pyx_L1_error:;
6795 0 : __Pyx_XDECREF(__pyx_t_1);
6796 0 : __Pyx_XDECREF(__pyx_t_3);
6797 0 : __Pyx_XDECREF(__pyx_t_4);
6798 0 : __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
6799 0 : __pyx_r = 0;
6800 0 : __pyx_L0:;
6801 0 : __Pyx_XDECREF((PyObject *)__pyx_v_result);
6802 0 : __Pyx_XDECREF(__pyx_v_mode);
6803 0 : __Pyx_XGIVEREF((PyObject *)__pyx_r);
6804 0 : __Pyx_RefNannyFinishContext();
6805 0 : return __pyx_r;
6806 : }
6807 :
6808 : /* "View.MemoryView":304
6809 : * cdef class Enum(object):
6810 : * cdef object name
6811 : * def __init__(self, name): # <<<<<<<<<<<<<<
6812 : * self.name = name
6813 : * def __repr__(self):
6814 : */
6815 :
6816 : /* Python wrapper */
6817 : static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
6818 5 : static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
6819 5 : PyObject *__pyx_v_name = 0;
6820 5 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
6821 5 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6822 5 : PyObject* values[1] = {0};
6823 5 : int __pyx_lineno = 0;
6824 5 : const char *__pyx_filename = NULL;
6825 5 : int __pyx_clineno = 0;
6826 5 : int __pyx_r;
6827 : __Pyx_RefNannyDeclarations
6828 5 : __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
6829 : #if CYTHON_ASSUME_SAFE_MACROS
6830 5 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
6831 : #else
6832 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
6833 : #endif
6834 5 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6835 : {
6836 5 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0};
6837 5 : if (__pyx_kwds) {
6838 0 : Py_ssize_t kw_args;
6839 0 : switch (__pyx_nargs) {
6840 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
6841 0 : CYTHON_FALLTHROUGH;
6842 0 : case 0: break;
6843 0 : default: goto __pyx_L5_argtuple_error;
6844 : }
6845 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
6846 0 : switch (__pyx_nargs) {
6847 0 : case 0:
6848 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_name)) != 0)) {
6849 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
6850 0 : kw_args--;
6851 : }
6852 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 304, __pyx_L3_error)
6853 0 : else goto __pyx_L5_argtuple_error;
6854 : }
6855 0 : if (unlikely(kw_args > 0)) {
6856 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
6857 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__init__") < 0)) __PYX_ERR(1, 304, __pyx_L3_error)
6858 : }
6859 5 : } else if (unlikely(__pyx_nargs != 1)) {
6860 0 : goto __pyx_L5_argtuple_error;
6861 : } else {
6862 5 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
6863 : }
6864 5 : __pyx_v_name = values[0];
6865 : }
6866 5 : goto __pyx_L6_skip;
6867 0 : __pyx_L5_argtuple_error:;
6868 0 : __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 304, __pyx_L3_error)
6869 5 : __pyx_L6_skip:;
6870 5 : goto __pyx_L4_argument_unpacking_done;
6871 0 : __pyx_L3_error:;
6872 : {
6873 0 : Py_ssize_t __pyx_temp;
6874 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6875 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
6876 : }
6877 : }
6878 0 : __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
6879 0 : __Pyx_RefNannyFinishContext();
6880 0 : return -1;
6881 5 : __pyx_L4_argument_unpacking_done:;
6882 5 : __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name);
6883 :
6884 : /* function exit code */
6885 : {
6886 5 : Py_ssize_t __pyx_temp;
6887 5 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
6888 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
6889 : }
6890 : }
6891 : __Pyx_RefNannyFinishContext();
6892 : return __pyx_r;
6893 : }
6894 :
6895 5 : static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) {
6896 5 : int __pyx_r;
6897 : __Pyx_RefNannyDeclarations
6898 5 : __Pyx_RefNannySetupContext("__init__", 1);
6899 :
6900 : /* "View.MemoryView":305
6901 : * cdef object name
6902 : * def __init__(self, name):
6903 : * self.name = name # <<<<<<<<<<<<<<
6904 : * def __repr__(self):
6905 : * return self.name
6906 : */
6907 5 : __Pyx_INCREF(__pyx_v_name);
6908 5 : __Pyx_GIVEREF(__pyx_v_name);
6909 5 : __Pyx_GOTREF(__pyx_v_self->name);
6910 5 : __Pyx_DECREF(__pyx_v_self->name);
6911 5 : __pyx_v_self->name = __pyx_v_name;
6912 :
6913 : /* "View.MemoryView":304
6914 : * cdef class Enum(object):
6915 : * cdef object name
6916 : * def __init__(self, name): # <<<<<<<<<<<<<<
6917 : * self.name = name
6918 : * def __repr__(self):
6919 : */
6920 :
6921 : /* function exit code */
6922 5 : __pyx_r = 0;
6923 5 : __Pyx_RefNannyFinishContext();
6924 5 : return __pyx_r;
6925 : }
6926 :
6927 : /* "View.MemoryView":306
6928 : * def __init__(self, name):
6929 : * self.name = name
6930 : * def __repr__(self): # <<<<<<<<<<<<<<
6931 : * return self.name
6932 : *
6933 : */
6934 :
6935 : /* Python wrapper */
6936 : static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/
6937 0 : static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) {
6938 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
6939 0 : PyObject *__pyx_r = 0;
6940 : __Pyx_RefNannyDeclarations
6941 0 : __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
6942 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
6943 0 : __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
6944 :
6945 : /* function exit code */
6946 0 : __Pyx_RefNannyFinishContext();
6947 0 : return __pyx_r;
6948 : }
6949 :
6950 0 : static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
6951 0 : PyObject *__pyx_r = NULL;
6952 : __Pyx_RefNannyDeclarations
6953 0 : __Pyx_RefNannySetupContext("__repr__", 1);
6954 :
6955 : /* "View.MemoryView":307
6956 : * self.name = name
6957 : * def __repr__(self):
6958 : * return self.name # <<<<<<<<<<<<<<
6959 : *
6960 : * cdef generic = Enum("<strided and direct or indirect>")
6961 : */
6962 0 : __Pyx_XDECREF(__pyx_r);
6963 0 : __Pyx_INCREF(__pyx_v_self->name);
6964 0 : __pyx_r = __pyx_v_self->name;
6965 0 : goto __pyx_L0;
6966 :
6967 : /* "View.MemoryView":306
6968 : * def __init__(self, name):
6969 : * self.name = name
6970 : * def __repr__(self): # <<<<<<<<<<<<<<
6971 : * return self.name
6972 : *
6973 : */
6974 :
6975 : /* function exit code */
6976 0 : __pyx_L0:;
6977 0 : __Pyx_XGIVEREF(__pyx_r);
6978 0 : __Pyx_RefNannyFinishContext();
6979 0 : return __pyx_r;
6980 : }
6981 :
6982 : /* "(tree fragment)":1
6983 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
6984 : * cdef tuple state
6985 : * cdef object _dict
6986 : */
6987 :
6988 : /* Python wrapper */
6989 : static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self,
6990 : #if CYTHON_METH_FASTCALL
6991 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6992 : #else
6993 : PyObject *__pyx_args, PyObject *__pyx_kwds
6994 : #endif
6995 : ); /*proto*/
6996 0 : static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self,
6997 : #if CYTHON_METH_FASTCALL
6998 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
6999 : #else
7000 : PyObject *__pyx_args, PyObject *__pyx_kwds
7001 : #endif
7002 : ) {
7003 : #if !CYTHON_METH_FASTCALL
7004 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7005 : #endif
7006 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7007 0 : PyObject *__pyx_r = 0;
7008 : __Pyx_RefNannyDeclarations
7009 0 : __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
7010 : #if !CYTHON_METH_FASTCALL
7011 : #if CYTHON_ASSUME_SAFE_MACROS
7012 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7013 : #else
7014 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7015 : #endif
7016 : #endif
7017 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7018 0 : if (unlikely(__pyx_nargs > 0)) {
7019 0 : __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
7020 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
7021 0 : __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self));
7022 :
7023 : /* function exit code */
7024 0 : __Pyx_RefNannyFinishContext();
7025 0 : return __pyx_r;
7026 : }
7027 :
7028 0 : static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) {
7029 0 : PyObject *__pyx_v_state = 0;
7030 0 : PyObject *__pyx_v__dict = 0;
7031 0 : int __pyx_v_use_setstate;
7032 0 : PyObject *__pyx_r = NULL;
7033 : __Pyx_RefNannyDeclarations
7034 0 : PyObject *__pyx_t_1 = NULL;
7035 0 : int __pyx_t_2;
7036 0 : PyObject *__pyx_t_3 = NULL;
7037 0 : PyObject *__pyx_t_4 = NULL;
7038 0 : int __pyx_lineno = 0;
7039 0 : const char *__pyx_filename = NULL;
7040 0 : int __pyx_clineno = 0;
7041 0 : __Pyx_RefNannySetupContext("__reduce_cython__", 1);
7042 :
7043 : /* "(tree fragment)":5
7044 : * cdef object _dict
7045 : * cdef bint use_setstate
7046 : * state = (self.name,) # <<<<<<<<<<<<<<
7047 : * _dict = getattr(self, '__dict__', None)
7048 : * if _dict is not None:
7049 : */
7050 0 : __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
7051 0 : __Pyx_GOTREF(__pyx_t_1);
7052 0 : __Pyx_INCREF(__pyx_v_self->name);
7053 0 : __Pyx_GIVEREF(__pyx_v_self->name);
7054 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name)) __PYX_ERR(1, 5, __pyx_L1_error);
7055 0 : __pyx_v_state = ((PyObject*)__pyx_t_1);
7056 0 : __pyx_t_1 = 0;
7057 :
7058 : /* "(tree fragment)":6
7059 : * cdef bint use_setstate
7060 : * state = (self.name,)
7061 : * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<<
7062 : * if _dict is not None:
7063 : * state += (_dict,)
7064 : */
7065 0 : __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
7066 0 : __Pyx_GOTREF(__pyx_t_1);
7067 0 : __pyx_v__dict = __pyx_t_1;
7068 0 : __pyx_t_1 = 0;
7069 :
7070 : /* "(tree fragment)":7
7071 : * state = (self.name,)
7072 : * _dict = getattr(self, '__dict__', None)
7073 : * if _dict is not None: # <<<<<<<<<<<<<<
7074 : * state += (_dict,)
7075 : * use_setstate = True
7076 : */
7077 0 : __pyx_t_2 = (__pyx_v__dict != Py_None);
7078 0 : if (__pyx_t_2) {
7079 :
7080 : /* "(tree fragment)":8
7081 : * _dict = getattr(self, '__dict__', None)
7082 : * if _dict is not None:
7083 : * state += (_dict,) # <<<<<<<<<<<<<<
7084 : * use_setstate = True
7085 : * else:
7086 : */
7087 0 : __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error)
7088 0 : __Pyx_GOTREF(__pyx_t_1);
7089 0 : __Pyx_INCREF(__pyx_v__dict);
7090 0 : __Pyx_GIVEREF(__pyx_v__dict);
7091 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict)) __PYX_ERR(1, 8, __pyx_L1_error);
7092 0 : __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 8, __pyx_L1_error)
7093 0 : __Pyx_GOTREF(__pyx_t_3);
7094 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7095 0 : __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_3));
7096 0 : __pyx_t_3 = 0;
7097 :
7098 : /* "(tree fragment)":9
7099 : * if _dict is not None:
7100 : * state += (_dict,)
7101 : * use_setstate = True # <<<<<<<<<<<<<<
7102 : * else:
7103 : * use_setstate = self.name is not None
7104 : */
7105 0 : __pyx_v_use_setstate = 1;
7106 :
7107 : /* "(tree fragment)":7
7108 : * state = (self.name,)
7109 : * _dict = getattr(self, '__dict__', None)
7110 : * if _dict is not None: # <<<<<<<<<<<<<<
7111 : * state += (_dict,)
7112 : * use_setstate = True
7113 : */
7114 0 : goto __pyx_L3;
7115 : }
7116 :
7117 : /* "(tree fragment)":11
7118 : * use_setstate = True
7119 : * else:
7120 : * use_setstate = self.name is not None # <<<<<<<<<<<<<<
7121 : * if use_setstate:
7122 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
7123 : */
7124 : /*else*/ {
7125 0 : __pyx_t_2 = (__pyx_v_self->name != Py_None);
7126 0 : __pyx_v_use_setstate = __pyx_t_2;
7127 : }
7128 0 : __pyx_L3:;
7129 :
7130 : /* "(tree fragment)":12
7131 : * else:
7132 : * use_setstate = self.name is not None
7133 : * if use_setstate: # <<<<<<<<<<<<<<
7134 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
7135 : * else:
7136 : */
7137 0 : if (__pyx_v_use_setstate) {
7138 :
7139 : /* "(tree fragment)":13
7140 : * use_setstate = self.name is not None
7141 : * if use_setstate:
7142 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state # <<<<<<<<<<<<<<
7143 : * else:
7144 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
7145 : */
7146 0 : __Pyx_XDECREF(__pyx_r);
7147 0 : __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error)
7148 0 : __Pyx_GOTREF(__pyx_t_3);
7149 0 : __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error)
7150 0 : __Pyx_GOTREF(__pyx_t_1);
7151 0 : __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
7152 0 : __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
7153 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 13, __pyx_L1_error);
7154 0 : __Pyx_INCREF(__pyx_int_136983863);
7155 0 : __Pyx_GIVEREF(__pyx_int_136983863);
7156 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(1, 13, __pyx_L1_error);
7157 0 : __Pyx_INCREF(Py_None);
7158 0 : __Pyx_GIVEREF(Py_None);
7159 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None)) __PYX_ERR(1, 13, __pyx_L1_error);
7160 0 : __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
7161 0 : __Pyx_GOTREF(__pyx_t_4);
7162 0 : __Pyx_GIVEREF(__pyx_t_3);
7163 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 13, __pyx_L1_error);
7164 0 : __Pyx_GIVEREF(__pyx_t_1);
7165 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error);
7166 0 : __Pyx_INCREF(__pyx_v_state);
7167 0 : __Pyx_GIVEREF(__pyx_v_state);
7168 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_state)) __PYX_ERR(1, 13, __pyx_L1_error);
7169 0 : __pyx_t_3 = 0;
7170 0 : __pyx_t_1 = 0;
7171 0 : __pyx_r = __pyx_t_4;
7172 0 : __pyx_t_4 = 0;
7173 0 : goto __pyx_L0;
7174 :
7175 : /* "(tree fragment)":12
7176 : * else:
7177 : * use_setstate = self.name is not None
7178 : * if use_setstate: # <<<<<<<<<<<<<<
7179 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
7180 : * else:
7181 : */
7182 : }
7183 :
7184 : /* "(tree fragment)":15
7185 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, None), state
7186 : * else:
7187 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, state) # <<<<<<<<<<<<<<
7188 : * def __setstate_cython__(self, __pyx_state):
7189 : * __pyx_unpickle_Enum__set_state(self, __pyx_state)
7190 : */
7191 : /*else*/ {
7192 0 : __Pyx_XDECREF(__pyx_r);
7193 0 : __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error)
7194 0 : __Pyx_GOTREF(__pyx_t_4);
7195 0 : __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error)
7196 0 : __Pyx_GOTREF(__pyx_t_1);
7197 0 : __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
7198 0 : __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))));
7199 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))))) __PYX_ERR(1, 15, __pyx_L1_error);
7200 0 : __Pyx_INCREF(__pyx_int_136983863);
7201 0 : __Pyx_GIVEREF(__pyx_int_136983863);
7202 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_136983863)) __PYX_ERR(1, 15, __pyx_L1_error);
7203 0 : __Pyx_INCREF(__pyx_v_state);
7204 0 : __Pyx_GIVEREF(__pyx_v_state);
7205 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state)) __PYX_ERR(1, 15, __pyx_L1_error);
7206 0 : __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 15, __pyx_L1_error)
7207 0 : __Pyx_GOTREF(__pyx_t_3);
7208 0 : __Pyx_GIVEREF(__pyx_t_4);
7209 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error);
7210 0 : __Pyx_GIVEREF(__pyx_t_1);
7211 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 15, __pyx_L1_error);
7212 0 : __pyx_t_4 = 0;
7213 0 : __pyx_t_1 = 0;
7214 0 : __pyx_r = __pyx_t_3;
7215 0 : __pyx_t_3 = 0;
7216 0 : goto __pyx_L0;
7217 : }
7218 :
7219 : /* "(tree fragment)":1
7220 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
7221 : * cdef tuple state
7222 : * cdef object _dict
7223 : */
7224 :
7225 : /* function exit code */
7226 0 : __pyx_L1_error:;
7227 0 : __Pyx_XDECREF(__pyx_t_1);
7228 0 : __Pyx_XDECREF(__pyx_t_3);
7229 0 : __Pyx_XDECREF(__pyx_t_4);
7230 0 : __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7231 0 : __pyx_r = NULL;
7232 0 : __pyx_L0:;
7233 0 : __Pyx_XDECREF(__pyx_v_state);
7234 0 : __Pyx_XDECREF(__pyx_v__dict);
7235 0 : __Pyx_XGIVEREF(__pyx_r);
7236 0 : __Pyx_RefNannyFinishContext();
7237 0 : return __pyx_r;
7238 : }
7239 :
7240 : /* "(tree fragment)":16
7241 : * else:
7242 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
7243 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
7244 : * __pyx_unpickle_Enum__set_state(self, __pyx_state)
7245 : */
7246 :
7247 : /* Python wrapper */
7248 : static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self,
7249 : #if CYTHON_METH_FASTCALL
7250 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7251 : #else
7252 : PyObject *__pyx_args, PyObject *__pyx_kwds
7253 : #endif
7254 : ); /*proto*/
7255 0 : static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self,
7256 : #if CYTHON_METH_FASTCALL
7257 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
7258 : #else
7259 : PyObject *__pyx_args, PyObject *__pyx_kwds
7260 : #endif
7261 : ) {
7262 0 : PyObject *__pyx_v___pyx_state = 0;
7263 : #if !CYTHON_METH_FASTCALL
7264 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7265 : #endif
7266 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7267 0 : PyObject* values[1] = {0};
7268 0 : int __pyx_lineno = 0;
7269 0 : const char *__pyx_filename = NULL;
7270 0 : int __pyx_clineno = 0;
7271 0 : PyObject *__pyx_r = 0;
7272 : __Pyx_RefNannyDeclarations
7273 0 : __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
7274 : #if !CYTHON_METH_FASTCALL
7275 : #if CYTHON_ASSUME_SAFE_MACROS
7276 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7277 : #else
7278 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
7279 : #endif
7280 : #endif
7281 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
7282 : {
7283 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
7284 0 : if (__pyx_kwds) {
7285 0 : Py_ssize_t kw_args;
7286 0 : switch (__pyx_nargs) {
7287 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
7288 0 : CYTHON_FALLTHROUGH;
7289 0 : case 0: break;
7290 0 : default: goto __pyx_L5_argtuple_error;
7291 : }
7292 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
7293 0 : switch (__pyx_nargs) {
7294 : case 0:
7295 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
7296 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
7297 0 : kw_args--;
7298 : }
7299 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 16, __pyx_L3_error)
7300 0 : else goto __pyx_L5_argtuple_error;
7301 : }
7302 0 : if (unlikely(kw_args > 0)) {
7303 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
7304 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 16, __pyx_L3_error)
7305 : }
7306 0 : } else if (unlikely(__pyx_nargs != 1)) {
7307 0 : goto __pyx_L5_argtuple_error;
7308 : } else {
7309 0 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
7310 : }
7311 0 : __pyx_v___pyx_state = values[0];
7312 : }
7313 0 : goto __pyx_L6_skip;
7314 0 : __pyx_L5_argtuple_error:;
7315 0 : __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 16, __pyx_L3_error)
7316 0 : __pyx_L6_skip:;
7317 0 : goto __pyx_L4_argument_unpacking_done;
7318 0 : __pyx_L3_error:;
7319 : {
7320 0 : Py_ssize_t __pyx_temp;
7321 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7322 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
7323 : }
7324 : }
7325 0 : __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7326 0 : __Pyx_RefNannyFinishContext();
7327 0 : return NULL;
7328 0 : __pyx_L4_argument_unpacking_done:;
7329 0 : __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v___pyx_state);
7330 :
7331 : /* function exit code */
7332 : {
7333 0 : Py_ssize_t __pyx_temp;
7334 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7335 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
7336 : }
7337 : }
7338 : __Pyx_RefNannyFinishContext();
7339 : return __pyx_r;
7340 : }
7341 :
7342 0 : static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) {
7343 0 : PyObject *__pyx_r = NULL;
7344 : __Pyx_RefNannyDeclarations
7345 0 : PyObject *__pyx_t_1 = NULL;
7346 0 : int __pyx_lineno = 0;
7347 0 : const char *__pyx_filename = NULL;
7348 0 : int __pyx_clineno = 0;
7349 0 : __Pyx_RefNannySetupContext("__setstate_cython__", 1);
7350 :
7351 : /* "(tree fragment)":17
7352 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
7353 : * def __setstate_cython__(self, __pyx_state):
7354 : * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<<
7355 : */
7356 0 : if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 17, __pyx_L1_error)
7357 0 : __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 17, __pyx_L1_error)
7358 0 : __Pyx_GOTREF(__pyx_t_1);
7359 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
7360 :
7361 : /* "(tree fragment)":16
7362 : * else:
7363 : * return __pyx_unpickle_Enum, (type(self), 0x82a3537, state)
7364 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
7365 : * __pyx_unpickle_Enum__set_state(self, __pyx_state)
7366 : */
7367 :
7368 : /* function exit code */
7369 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
7370 0 : goto __pyx_L0;
7371 0 : __pyx_L1_error:;
7372 0 : __Pyx_XDECREF(__pyx_t_1);
7373 0 : __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7374 0 : __pyx_r = NULL;
7375 0 : __pyx_L0:;
7376 0 : __Pyx_XGIVEREF(__pyx_r);
7377 0 : __Pyx_RefNannyFinishContext();
7378 0 : return __pyx_r;
7379 : }
7380 :
7381 : /* "View.MemoryView":349
7382 : * cdef __Pyx_TypeInfo *typeinfo
7383 : *
7384 : * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<<
7385 : * self.obj = obj
7386 : * self.flags = flags
7387 : */
7388 :
7389 : /* Python wrapper */
7390 : static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
7391 408 : static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
7392 408 : PyObject *__pyx_v_obj = 0;
7393 408 : int __pyx_v_flags;
7394 408 : int __pyx_v_dtype_is_object;
7395 408 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
7396 408 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7397 408 : PyObject* values[3] = {0,0,0};
7398 408 : int __pyx_lineno = 0;
7399 408 : const char *__pyx_filename = NULL;
7400 408 : int __pyx_clineno = 0;
7401 408 : int __pyx_r;
7402 : __Pyx_RefNannyDeclarations
7403 408 : __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0);
7404 : #if CYTHON_ASSUME_SAFE_MACROS
7405 408 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
7406 : #else
7407 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return -1;
7408 : #endif
7409 408 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
7410 : {
7411 408 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0};
7412 408 : if (__pyx_kwds) {
7413 0 : Py_ssize_t kw_args;
7414 0 : switch (__pyx_nargs) {
7415 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
7416 0 : CYTHON_FALLTHROUGH;
7417 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
7418 0 : CYTHON_FALLTHROUGH;
7419 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
7420 0 : CYTHON_FALLTHROUGH;
7421 0 : case 0: break;
7422 0 : default: goto __pyx_L5_argtuple_error;
7423 : }
7424 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
7425 0 : switch (__pyx_nargs) {
7426 0 : case 0:
7427 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_obj)) != 0)) {
7428 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
7429 0 : kw_args--;
7430 : }
7431 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
7432 0 : else goto __pyx_L5_argtuple_error;
7433 0 : CYTHON_FALLTHROUGH;
7434 : case 1:
7435 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_flags)) != 0)) {
7436 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
7437 0 : kw_args--;
7438 : }
7439 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
7440 : else {
7441 0 : __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(1, 349, __pyx_L3_error)
7442 : }
7443 0 : CYTHON_FALLTHROUGH;
7444 : case 2:
7445 0 : if (kw_args > 0) {
7446 0 : PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_dtype_is_object);
7447 0 : if (value) { values[2] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
7448 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
7449 : }
7450 : }
7451 0 : if (unlikely(kw_args > 0)) {
7452 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
7453 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__cinit__") < 0)) __PYX_ERR(1, 349, __pyx_L3_error)
7454 : }
7455 : } else {
7456 408 : switch (__pyx_nargs) {
7457 408 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
7458 408 : CYTHON_FALLTHROUGH;
7459 408 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
7460 408 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
7461 408 : break;
7462 0 : default: goto __pyx_L5_argtuple_error;
7463 : }
7464 : }
7465 408 : __pyx_v_obj = values[0];
7466 408 : __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
7467 408 : if (values[2]) {
7468 408 : __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L3_error)
7469 : } else {
7470 : __pyx_v_dtype_is_object = ((int)0);
7471 : }
7472 : }
7473 408 : goto __pyx_L6_skip;
7474 0 : __pyx_L5_argtuple_error:;
7475 0 : __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, __pyx_nargs); __PYX_ERR(1, 349, __pyx_L3_error)
7476 408 : __pyx_L6_skip:;
7477 408 : goto __pyx_L4_argument_unpacking_done;
7478 0 : __pyx_L3_error:;
7479 : {
7480 0 : Py_ssize_t __pyx_temp;
7481 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7482 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
7483 : }
7484 : }
7485 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7486 0 : __Pyx_RefNannyFinishContext();
7487 0 : return -1;
7488 408 : __pyx_L4_argument_unpacking_done:;
7489 408 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object);
7490 :
7491 : /* function exit code */
7492 : {
7493 408 : Py_ssize_t __pyx_temp;
7494 408 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
7495 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
7496 : }
7497 : }
7498 : __Pyx_RefNannyFinishContext();
7499 : return __pyx_r;
7500 : }
7501 :
7502 408 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) {
7503 408 : int __pyx_r;
7504 : __Pyx_RefNannyDeclarations
7505 408 : int __pyx_t_1;
7506 408 : int __pyx_t_2;
7507 408 : int __pyx_t_3;
7508 408 : Py_intptr_t __pyx_t_4;
7509 408 : size_t __pyx_t_5;
7510 408 : int __pyx_lineno = 0;
7511 408 : const char *__pyx_filename = NULL;
7512 408 : int __pyx_clineno = 0;
7513 408 : __Pyx_RefNannySetupContext("__cinit__", 1);
7514 :
7515 : /* "View.MemoryView":350
7516 : *
7517 : * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
7518 : * self.obj = obj # <<<<<<<<<<<<<<
7519 : * self.flags = flags
7520 : * if type(self) is memoryview or obj is not None:
7521 : */
7522 408 : __Pyx_INCREF(__pyx_v_obj);
7523 408 : __Pyx_GIVEREF(__pyx_v_obj);
7524 408 : __Pyx_GOTREF(__pyx_v_self->obj);
7525 408 : __Pyx_DECREF(__pyx_v_self->obj);
7526 408 : __pyx_v_self->obj = __pyx_v_obj;
7527 :
7528 : /* "View.MemoryView":351
7529 : * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False):
7530 : * self.obj = obj
7531 : * self.flags = flags # <<<<<<<<<<<<<<
7532 : * if type(self) is memoryview or obj is not None:
7533 : * __Pyx_GetBuffer(obj, &self.view, flags)
7534 : */
7535 408 : __pyx_v_self->flags = __pyx_v_flags;
7536 :
7537 : /* "View.MemoryView":352
7538 : * self.obj = obj
7539 : * self.flags = flags
7540 : * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<<
7541 : * __Pyx_GetBuffer(obj, &self.view, flags)
7542 : * if <PyObject *> self.view.obj == NULL:
7543 : */
7544 408 : __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type));
7545 408 : if (!__pyx_t_2) {
7546 3 : } else {
7547 405 : __pyx_t_1 = __pyx_t_2;
7548 405 : goto __pyx_L4_bool_binop_done;
7549 : }
7550 3 : __pyx_t_2 = (__pyx_v_obj != Py_None);
7551 3 : __pyx_t_1 = __pyx_t_2;
7552 408 : __pyx_L4_bool_binop_done:;
7553 408 : if (__pyx_t_1) {
7554 :
7555 : /* "View.MemoryView":353
7556 : * self.flags = flags
7557 : * if type(self) is memoryview or obj is not None:
7558 : * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<<
7559 : * if <PyObject *> self.view.obj == NULL:
7560 : * (<__pyx_buffer *> &self.view).obj = Py_None
7561 : */
7562 405 : __pyx_t_3 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 353, __pyx_L1_error)
7563 :
7564 : /* "View.MemoryView":354
7565 : * if type(self) is memoryview or obj is not None:
7566 : * __Pyx_GetBuffer(obj, &self.view, flags)
7567 : * if <PyObject *> self.view.obj == NULL: # <<<<<<<<<<<<<<
7568 : * (<__pyx_buffer *> &self.view).obj = Py_None
7569 : * Py_INCREF(Py_None)
7570 : */
7571 405 : __pyx_t_1 = (((PyObject *)__pyx_v_self->view.obj) == NULL);
7572 405 : if (__pyx_t_1) {
7573 :
7574 : /* "View.MemoryView":355
7575 : * __Pyx_GetBuffer(obj, &self.view, flags)
7576 : * if <PyObject *> self.view.obj == NULL:
7577 : * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<<
7578 : * Py_INCREF(Py_None)
7579 : *
7580 : */
7581 0 : ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None;
7582 :
7583 : /* "View.MemoryView":356
7584 : * if <PyObject *> self.view.obj == NULL:
7585 : * (<__pyx_buffer *> &self.view).obj = Py_None
7586 : * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
7587 : *
7588 : * if not __PYX_CYTHON_ATOMICS_ENABLED():
7589 : */
7590 0 : Py_INCREF(Py_None);
7591 :
7592 : /* "View.MemoryView":354
7593 : * if type(self) is memoryview or obj is not None:
7594 : * __Pyx_GetBuffer(obj, &self.view, flags)
7595 : * if <PyObject *> self.view.obj == NULL: # <<<<<<<<<<<<<<
7596 : * (<__pyx_buffer *> &self.view).obj = Py_None
7597 : * Py_INCREF(Py_None)
7598 : */
7599 : }
7600 :
7601 : /* "View.MemoryView":352
7602 : * self.obj = obj
7603 : * self.flags = flags
7604 : * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<<
7605 : * __Pyx_GetBuffer(obj, &self.view, flags)
7606 : * if <PyObject *> self.view.obj == NULL:
7607 : */
7608 : }
7609 :
7610 : /* "View.MemoryView":358
7611 : * Py_INCREF(Py_None)
7612 : *
7613 : * if not __PYX_CYTHON_ATOMICS_ENABLED(): # <<<<<<<<<<<<<<
7614 : * global __pyx_memoryview_thread_locks_used
7615 : * if __pyx_memoryview_thread_locks_used < 8:
7616 : */
7617 408 : __pyx_t_1 = (!__PYX_CYTHON_ATOMICS_ENABLED());
7618 408 : if (__pyx_t_1) {
7619 :
7620 : /* "View.MemoryView":360
7621 : * if not __PYX_CYTHON_ATOMICS_ENABLED():
7622 : * global __pyx_memoryview_thread_locks_used
7623 : * if __pyx_memoryview_thread_locks_used < 8: # <<<<<<<<<<<<<<
7624 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
7625 : * __pyx_memoryview_thread_locks_used += 1
7626 : */
7627 : __pyx_t_1 = (__pyx_memoryview_thread_locks_used < 8);
7628 : if (__pyx_t_1) {
7629 :
7630 : /* "View.MemoryView":361
7631 : * global __pyx_memoryview_thread_locks_used
7632 : * if __pyx_memoryview_thread_locks_used < 8:
7633 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<<
7634 : * __pyx_memoryview_thread_locks_used += 1
7635 : * if self.lock is NULL:
7636 : */
7637 : __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
7638 :
7639 : /* "View.MemoryView":362
7640 : * if __pyx_memoryview_thread_locks_used < 8:
7641 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
7642 : * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<<
7643 : * if self.lock is NULL:
7644 : * self.lock = PyThread_allocate_lock()
7645 : */
7646 : __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1);
7647 :
7648 : /* "View.MemoryView":360
7649 : * if not __PYX_CYTHON_ATOMICS_ENABLED():
7650 : * global __pyx_memoryview_thread_locks_used
7651 : * if __pyx_memoryview_thread_locks_used < 8: # <<<<<<<<<<<<<<
7652 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
7653 : * __pyx_memoryview_thread_locks_used += 1
7654 : */
7655 : }
7656 :
7657 : /* "View.MemoryView":363
7658 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
7659 : * __pyx_memoryview_thread_locks_used += 1
7660 : * if self.lock is NULL: # <<<<<<<<<<<<<<
7661 : * self.lock = PyThread_allocate_lock()
7662 : * if self.lock is NULL:
7663 : */
7664 : __pyx_t_1 = (__pyx_v_self->lock == NULL);
7665 : if (__pyx_t_1) {
7666 :
7667 : /* "View.MemoryView":364
7668 : * __pyx_memoryview_thread_locks_used += 1
7669 : * if self.lock is NULL:
7670 : * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<<
7671 : * if self.lock is NULL:
7672 : * raise MemoryError
7673 : */
7674 : __pyx_v_self->lock = PyThread_allocate_lock();
7675 :
7676 : /* "View.MemoryView":365
7677 : * if self.lock is NULL:
7678 : * self.lock = PyThread_allocate_lock()
7679 : * if self.lock is NULL: # <<<<<<<<<<<<<<
7680 : * raise MemoryError
7681 : *
7682 : */
7683 : __pyx_t_1 = (__pyx_v_self->lock == NULL);
7684 : if (unlikely(__pyx_t_1)) {
7685 :
7686 : /* "View.MemoryView":366
7687 : * self.lock = PyThread_allocate_lock()
7688 : * if self.lock is NULL:
7689 : * raise MemoryError # <<<<<<<<<<<<<<
7690 : *
7691 : * if flags & PyBUF_FORMAT:
7692 : */
7693 : PyErr_NoMemory(); __PYX_ERR(1, 366, __pyx_L1_error)
7694 :
7695 : /* "View.MemoryView":365
7696 : * if self.lock is NULL:
7697 : * self.lock = PyThread_allocate_lock()
7698 : * if self.lock is NULL: # <<<<<<<<<<<<<<
7699 : * raise MemoryError
7700 : *
7701 : */
7702 : }
7703 :
7704 : /* "View.MemoryView":363
7705 : * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]
7706 : * __pyx_memoryview_thread_locks_used += 1
7707 : * if self.lock is NULL: # <<<<<<<<<<<<<<
7708 : * self.lock = PyThread_allocate_lock()
7709 : * if self.lock is NULL:
7710 : */
7711 : }
7712 :
7713 : /* "View.MemoryView":358
7714 : * Py_INCREF(Py_None)
7715 : *
7716 : * if not __PYX_CYTHON_ATOMICS_ENABLED(): # <<<<<<<<<<<<<<
7717 : * global __pyx_memoryview_thread_locks_used
7718 : * if __pyx_memoryview_thread_locks_used < 8:
7719 : */
7720 : }
7721 :
7722 : /* "View.MemoryView":368
7723 : * raise MemoryError
7724 : *
7725 : * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
7726 : * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
7727 : * else:
7728 : */
7729 408 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
7730 408 : if (__pyx_t_1) {
7731 :
7732 : /* "View.MemoryView":369
7733 : *
7734 : * if flags & PyBUF_FORMAT:
7735 : * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<<
7736 : * else:
7737 : * self.dtype_is_object = dtype_is_object
7738 : */
7739 405 : __pyx_t_2 = ((__pyx_v_self->view.format[0]) == 'O');
7740 405 : if (__pyx_t_2) {
7741 6 : } else {
7742 399 : __pyx_t_1 = __pyx_t_2;
7743 399 : goto __pyx_L12_bool_binop_done;
7744 : }
7745 6 : __pyx_t_2 = ((__pyx_v_self->view.format[1]) == '\x00');
7746 6 : __pyx_t_1 = __pyx_t_2;
7747 405 : __pyx_L12_bool_binop_done:;
7748 405 : __pyx_v_self->dtype_is_object = __pyx_t_1;
7749 :
7750 : /* "View.MemoryView":368
7751 : * raise MemoryError
7752 : *
7753 : * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
7754 : * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
7755 : * else:
7756 : */
7757 405 : goto __pyx_L11;
7758 : }
7759 :
7760 : /* "View.MemoryView":371
7761 : * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0')
7762 : * else:
7763 : * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<<
7764 : *
7765 : * assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
7766 : */
7767 : /*else*/ {
7768 3 : __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object;
7769 : }
7770 408 : __pyx_L11:;
7771 :
7772 : /* "View.MemoryView":373
7773 : * self.dtype_is_object = dtype_is_object
7774 : *
7775 : * assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0 # <<<<<<<<<<<<<<
7776 : * self.typeinfo = NULL
7777 : *
7778 : */
7779 : #ifndef CYTHON_WITHOUT_ASSERTIONS
7780 408 : if (unlikely(__pyx_assertions_enabled())) {
7781 408 : __pyx_t_4 = ((Py_intptr_t)((void *)(&__pyx_v_self->acquisition_count)));
7782 408 : __pyx_t_5 = (sizeof(__pyx_atomic_int_type));
7783 408 : if (unlikely(__pyx_t_5 == 0)) {
7784 : PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
7785 : __PYX_ERR(1, 373, __pyx_L1_error)
7786 : }
7787 408 : __pyx_t_1 = ((__pyx_t_4 % __pyx_t_5) == 0);
7788 408 : if (unlikely(!__pyx_t_1)) {
7789 0 : __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
7790 0 : __PYX_ERR(1, 373, __pyx_L1_error)
7791 : }
7792 : }
7793 : #else
7794 : if ((1)); else __PYX_ERR(1, 373, __pyx_L1_error)
7795 : #endif
7796 :
7797 : /* "View.MemoryView":374
7798 : *
7799 : * assert <Py_intptr_t><void*>(&self.acquisition_count) % sizeof(__pyx_atomic_int_type) == 0
7800 : * self.typeinfo = NULL # <<<<<<<<<<<<<<
7801 : *
7802 : * def __dealloc__(memoryview self):
7803 : */
7804 408 : __pyx_v_self->typeinfo = NULL;
7805 :
7806 : /* "View.MemoryView":349
7807 : * cdef __Pyx_TypeInfo *typeinfo
7808 : *
7809 : * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<<
7810 : * self.obj = obj
7811 : * self.flags = flags
7812 : */
7813 :
7814 : /* function exit code */
7815 408 : __pyx_r = 0;
7816 408 : goto __pyx_L0;
7817 0 : __pyx_L1_error:;
7818 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
7819 0 : __pyx_r = -1;
7820 408 : __pyx_L0:;
7821 408 : __Pyx_RefNannyFinishContext();
7822 408 : return __pyx_r;
7823 : }
7824 :
7825 : /* "View.MemoryView":376
7826 : * self.typeinfo = NULL
7827 : *
7828 : * def __dealloc__(memoryview self): # <<<<<<<<<<<<<<
7829 : * if self.obj is not None:
7830 : * __Pyx_ReleaseBuffer(&self.view)
7831 : */
7832 :
7833 : /* Python wrapper */
7834 : static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/
7835 408 : static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) {
7836 408 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
7837 : __Pyx_RefNannyDeclarations
7838 408 : __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
7839 408 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
7840 408 : __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self));
7841 :
7842 : /* function exit code */
7843 408 : __Pyx_RefNannyFinishContext();
7844 : }
7845 :
7846 408 : static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) {
7847 408 : int __pyx_v_i;
7848 408 : int __pyx_t_1;
7849 408 : int __pyx_t_2;
7850 408 : int __pyx_t_3;
7851 408 : int __pyx_t_4;
7852 408 : PyThread_type_lock __pyx_t_5;
7853 408 : PyThread_type_lock __pyx_t_6;
7854 :
7855 : /* "View.MemoryView":377
7856 : *
7857 : * def __dealloc__(memoryview self):
7858 : * if self.obj is not None: # <<<<<<<<<<<<<<
7859 : * __Pyx_ReleaseBuffer(&self.view)
7860 : * elif (<__pyx_buffer *> &self.view).obj == Py_None:
7861 : */
7862 408 : __pyx_t_1 = (__pyx_v_self->obj != Py_None);
7863 408 : if (__pyx_t_1) {
7864 :
7865 : /* "View.MemoryView":378
7866 : * def __dealloc__(memoryview self):
7867 : * if self.obj is not None:
7868 : * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<<
7869 : * elif (<__pyx_buffer *> &self.view).obj == Py_None:
7870 : *
7871 : */
7872 405 : __Pyx_ReleaseBuffer((&__pyx_v_self->view));
7873 :
7874 : /* "View.MemoryView":377
7875 : *
7876 : * def __dealloc__(memoryview self):
7877 : * if self.obj is not None: # <<<<<<<<<<<<<<
7878 : * __Pyx_ReleaseBuffer(&self.view)
7879 : * elif (<__pyx_buffer *> &self.view).obj == Py_None:
7880 : */
7881 405 : goto __pyx_L3;
7882 : }
7883 :
7884 : /* "View.MemoryView":379
7885 : * if self.obj is not None:
7886 : * __Pyx_ReleaseBuffer(&self.view)
7887 : * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<<
7888 : *
7889 : * (<__pyx_buffer *> &self.view).obj = NULL
7890 : */
7891 3 : __pyx_t_1 = (((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None);
7892 3 : if (__pyx_t_1) {
7893 :
7894 : /* "View.MemoryView":381
7895 : * elif (<__pyx_buffer *> &self.view).obj == Py_None:
7896 : *
7897 : * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<<
7898 : * Py_DECREF(Py_None)
7899 : *
7900 : */
7901 3 : ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL;
7902 :
7903 : /* "View.MemoryView":382
7904 : *
7905 : * (<__pyx_buffer *> &self.view).obj = NULL
7906 : * Py_DECREF(Py_None) # <<<<<<<<<<<<<<
7907 : *
7908 : * cdef int i
7909 : */
7910 3 : Py_DECREF(Py_None);
7911 :
7912 : /* "View.MemoryView":379
7913 : * if self.obj is not None:
7914 : * __Pyx_ReleaseBuffer(&self.view)
7915 : * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<<
7916 : *
7917 : * (<__pyx_buffer *> &self.view).obj = NULL
7918 : */
7919 : }
7920 0 : __pyx_L3:;
7921 :
7922 : /* "View.MemoryView":386
7923 : * cdef int i
7924 : * global __pyx_memoryview_thread_locks_used
7925 : * if self.lock != NULL: # <<<<<<<<<<<<<<
7926 : * for i in range(__pyx_memoryview_thread_locks_used):
7927 : * if __pyx_memoryview_thread_locks[i] is self.lock:
7928 : */
7929 408 : __pyx_t_1 = (__pyx_v_self->lock != NULL);
7930 408 : if (__pyx_t_1) {
7931 :
7932 : /* "View.MemoryView":387
7933 : * global __pyx_memoryview_thread_locks_used
7934 : * if self.lock != NULL:
7935 : * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<<
7936 : * if __pyx_memoryview_thread_locks[i] is self.lock:
7937 : * __pyx_memoryview_thread_locks_used -= 1
7938 : */
7939 0 : __pyx_t_2 = __pyx_memoryview_thread_locks_used;
7940 0 : __pyx_t_3 = __pyx_t_2;
7941 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
7942 0 : __pyx_v_i = __pyx_t_4;
7943 :
7944 : /* "View.MemoryView":388
7945 : * if self.lock != NULL:
7946 : * for i in range(__pyx_memoryview_thread_locks_used):
7947 : * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<<
7948 : * __pyx_memoryview_thread_locks_used -= 1
7949 : * if i != __pyx_memoryview_thread_locks_used:
7950 : */
7951 0 : __pyx_t_1 = ((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock);
7952 0 : if (__pyx_t_1) {
7953 :
7954 : /* "View.MemoryView":389
7955 : * for i in range(__pyx_memoryview_thread_locks_used):
7956 : * if __pyx_memoryview_thread_locks[i] is self.lock:
7957 : * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<<
7958 : * if i != __pyx_memoryview_thread_locks_used:
7959 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
7960 : */
7961 0 : __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1);
7962 :
7963 : /* "View.MemoryView":390
7964 : * if __pyx_memoryview_thread_locks[i] is self.lock:
7965 : * __pyx_memoryview_thread_locks_used -= 1
7966 : * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<<
7967 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
7968 : * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
7969 : */
7970 0 : __pyx_t_1 = (__pyx_v_i != __pyx_memoryview_thread_locks_used);
7971 0 : if (__pyx_t_1) {
7972 :
7973 : /* "View.MemoryView":392
7974 : * if i != __pyx_memoryview_thread_locks_used:
7975 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
7976 : * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<<
7977 : * break
7978 : * else:
7979 : */
7980 0 : __pyx_t_5 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]);
7981 0 : __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_v_i]);
7982 :
7983 : /* "View.MemoryView":391
7984 : * __pyx_memoryview_thread_locks_used -= 1
7985 : * if i != __pyx_memoryview_thread_locks_used:
7986 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<<
7987 : * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
7988 : * break
7989 : */
7990 0 : (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_5;
7991 0 : (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_6;
7992 :
7993 : /* "View.MemoryView":390
7994 : * if __pyx_memoryview_thread_locks[i] is self.lock:
7995 : * __pyx_memoryview_thread_locks_used -= 1
7996 : * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<<
7997 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
7998 : * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
7999 : */
8000 : }
8001 :
8002 : /* "View.MemoryView":393
8003 : * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = (
8004 : * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i])
8005 : * break # <<<<<<<<<<<<<<
8006 : * else:
8007 : * PyThread_free_lock(self.lock)
8008 : */
8009 0 : goto __pyx_L6_break;
8010 :
8011 : /* "View.MemoryView":388
8012 : * if self.lock != NULL:
8013 : * for i in range(__pyx_memoryview_thread_locks_used):
8014 : * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<<
8015 : * __pyx_memoryview_thread_locks_used -= 1
8016 : * if i != __pyx_memoryview_thread_locks_used:
8017 : */
8018 : }
8019 : }
8020 : /*else*/ {
8021 :
8022 : /* "View.MemoryView":395
8023 : * break
8024 : * else:
8025 : * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<<
8026 : *
8027 : * cdef char *get_item_pointer(memoryview self, object index) except NULL:
8028 : */
8029 0 : PyThread_free_lock(__pyx_v_self->lock);
8030 : }
8031 408 : __pyx_L6_break:;
8032 :
8033 : /* "View.MemoryView":386
8034 : * cdef int i
8035 : * global __pyx_memoryview_thread_locks_used
8036 : * if self.lock != NULL: # <<<<<<<<<<<<<<
8037 : * for i in range(__pyx_memoryview_thread_locks_used):
8038 : * if __pyx_memoryview_thread_locks[i] is self.lock:
8039 : */
8040 : }
8041 :
8042 : /* "View.MemoryView":376
8043 : * self.typeinfo = NULL
8044 : *
8045 : * def __dealloc__(memoryview self): # <<<<<<<<<<<<<<
8046 : * if self.obj is not None:
8047 : * __Pyx_ReleaseBuffer(&self.view)
8048 : */
8049 :
8050 : /* function exit code */
8051 408 : }
8052 :
8053 : /* "View.MemoryView":397
8054 : * PyThread_free_lock(self.lock)
8055 : *
8056 : * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<<
8057 : * cdef Py_ssize_t dim
8058 : * cdef char *itemp = <char *> self.view.buf
8059 : */
8060 :
8061 0 : static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
8062 0 : Py_ssize_t __pyx_v_dim;
8063 0 : char *__pyx_v_itemp;
8064 0 : PyObject *__pyx_v_idx = NULL;
8065 0 : char *__pyx_r;
8066 : __Pyx_RefNannyDeclarations
8067 0 : Py_ssize_t __pyx_t_1;
8068 0 : PyObject *__pyx_t_2 = NULL;
8069 0 : Py_ssize_t __pyx_t_3;
8070 0 : PyObject *(*__pyx_t_4)(PyObject *);
8071 0 : PyObject *__pyx_t_5 = NULL;
8072 0 : Py_ssize_t __pyx_t_6;
8073 0 : char *__pyx_t_7;
8074 0 : int __pyx_lineno = 0;
8075 0 : const char *__pyx_filename = NULL;
8076 0 : int __pyx_clineno = 0;
8077 0 : __Pyx_RefNannySetupContext("get_item_pointer", 1);
8078 :
8079 : /* "View.MemoryView":399
8080 : * cdef char *get_item_pointer(memoryview self, object index) except NULL:
8081 : * cdef Py_ssize_t dim
8082 : * cdef char *itemp = <char *> self.view.buf # <<<<<<<<<<<<<<
8083 : *
8084 : * for dim, idx in enumerate(index):
8085 : */
8086 0 : __pyx_v_itemp = ((char *)__pyx_v_self->view.buf);
8087 :
8088 : /* "View.MemoryView":401
8089 : * cdef char *itemp = <char *> self.view.buf
8090 : *
8091 : * for dim, idx in enumerate(index): # <<<<<<<<<<<<<<
8092 : * itemp = pybuffer_index(&self.view, itemp, idx, dim)
8093 : *
8094 : */
8095 0 : __pyx_t_1 = 0;
8096 0 : if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) {
8097 0 : __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2);
8098 0 : __pyx_t_3 = 0;
8099 0 : __pyx_t_4 = NULL;
8100 : } else {
8101 0 : __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 401, __pyx_L1_error)
8102 0 : __Pyx_GOTREF(__pyx_t_2);
8103 0 : __pyx_t_4 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 401, __pyx_L1_error)
8104 : }
8105 0 : for (;;) {
8106 0 : if (likely(!__pyx_t_4)) {
8107 0 : if (likely(PyList_CheckExact(__pyx_t_2))) {
8108 : {
8109 0 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
8110 : #if !CYTHON_ASSUME_SAFE_MACROS
8111 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
8112 : #endif
8113 0 : if (__pyx_t_3 >= __pyx_temp) break;
8114 : }
8115 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8116 0 : __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
8117 : #else
8118 : __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 401, __pyx_L1_error)
8119 : __Pyx_GOTREF(__pyx_t_5);
8120 : #endif
8121 : } else {
8122 : {
8123 0 : Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
8124 : #if !CYTHON_ASSUME_SAFE_MACROS
8125 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
8126 : #endif
8127 0 : if (__pyx_t_3 >= __pyx_temp) break;
8128 : }
8129 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8130 0 : __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely((0 < 0))) __PYX_ERR(1, 401, __pyx_L1_error)
8131 : #else
8132 : __pyx_t_5 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 401, __pyx_L1_error)
8133 : __Pyx_GOTREF(__pyx_t_5);
8134 : #endif
8135 : }
8136 : } else {
8137 0 : __pyx_t_5 = __pyx_t_4(__pyx_t_2);
8138 0 : if (unlikely(!__pyx_t_5)) {
8139 0 : PyObject* exc_type = PyErr_Occurred();
8140 0 : if (exc_type) {
8141 0 : if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
8142 0 : else __PYX_ERR(1, 401, __pyx_L1_error)
8143 : }
8144 : break;
8145 : }
8146 0 : __Pyx_GOTREF(__pyx_t_5);
8147 : }
8148 0 : __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5);
8149 0 : __pyx_t_5 = 0;
8150 0 : __pyx_v_dim = __pyx_t_1;
8151 0 : __pyx_t_1 = (__pyx_t_1 + 1);
8152 :
8153 : /* "View.MemoryView":402
8154 : *
8155 : * for dim, idx in enumerate(index):
8156 : * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<<
8157 : *
8158 : * return itemp
8159 : */
8160 0 : __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 402, __pyx_L1_error)
8161 0 : __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(1, 402, __pyx_L1_error)
8162 : __pyx_v_itemp = __pyx_t_7;
8163 :
8164 : /* "View.MemoryView":401
8165 : * cdef char *itemp = <char *> self.view.buf
8166 : *
8167 : * for dim, idx in enumerate(index): # <<<<<<<<<<<<<<
8168 : * itemp = pybuffer_index(&self.view, itemp, idx, dim)
8169 : *
8170 : */
8171 : }
8172 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8173 :
8174 : /* "View.MemoryView":404
8175 : * itemp = pybuffer_index(&self.view, itemp, idx, dim)
8176 : *
8177 : * return itemp # <<<<<<<<<<<<<<
8178 : *
8179 : *
8180 : */
8181 0 : __pyx_r = __pyx_v_itemp;
8182 0 : goto __pyx_L0;
8183 :
8184 : /* "View.MemoryView":397
8185 : * PyThread_free_lock(self.lock)
8186 : *
8187 : * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<<
8188 : * cdef Py_ssize_t dim
8189 : * cdef char *itemp = <char *> self.view.buf
8190 : */
8191 :
8192 : /* function exit code */
8193 0 : __pyx_L1_error:;
8194 0 : __Pyx_XDECREF(__pyx_t_2);
8195 0 : __Pyx_XDECREF(__pyx_t_5);
8196 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename);
8197 0 : __pyx_r = NULL;
8198 0 : __pyx_L0:;
8199 0 : __Pyx_XDECREF(__pyx_v_idx);
8200 0 : __Pyx_RefNannyFinishContext();
8201 0 : return __pyx_r;
8202 : }
8203 :
8204 : /* "View.MemoryView":407
8205 : *
8206 : *
8207 : * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<<
8208 : * if index is Ellipsis:
8209 : * return self
8210 : */
8211 :
8212 : /* Python wrapper */
8213 : static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/
8214 0 : static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
8215 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8216 0 : PyObject *__pyx_r = 0;
8217 : __Pyx_RefNannyDeclarations
8218 0 : __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0);
8219 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
8220 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index));
8221 :
8222 : /* function exit code */
8223 0 : __Pyx_RefNannyFinishContext();
8224 0 : return __pyx_r;
8225 : }
8226 :
8227 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) {
8228 0 : PyObject *__pyx_v_have_slices = NULL;
8229 0 : PyObject *__pyx_v_indices = NULL;
8230 0 : char *__pyx_v_itemp;
8231 0 : PyObject *__pyx_r = NULL;
8232 : __Pyx_RefNannyDeclarations
8233 0 : int __pyx_t_1;
8234 0 : PyObject *__pyx_t_2 = NULL;
8235 0 : PyObject *__pyx_t_3 = NULL;
8236 0 : PyObject *__pyx_t_4 = NULL;
8237 0 : char *__pyx_t_5;
8238 0 : int __pyx_lineno = 0;
8239 0 : const char *__pyx_filename = NULL;
8240 0 : int __pyx_clineno = 0;
8241 0 : __Pyx_RefNannySetupContext("__getitem__", 1);
8242 :
8243 : /* "View.MemoryView":408
8244 : *
8245 : * def __getitem__(memoryview self, object index):
8246 : * if index is Ellipsis: # <<<<<<<<<<<<<<
8247 : * return self
8248 : *
8249 : */
8250 0 : __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis);
8251 0 : if (__pyx_t_1) {
8252 :
8253 : /* "View.MemoryView":409
8254 : * def __getitem__(memoryview self, object index):
8255 : * if index is Ellipsis:
8256 : * return self # <<<<<<<<<<<<<<
8257 : *
8258 : * have_slices, indices = _unellipsify(index, self.view.ndim)
8259 : */
8260 0 : __Pyx_XDECREF(__pyx_r);
8261 0 : __Pyx_INCREF((PyObject *)__pyx_v_self);
8262 0 : __pyx_r = ((PyObject *)__pyx_v_self);
8263 0 : goto __pyx_L0;
8264 :
8265 : /* "View.MemoryView":408
8266 : *
8267 : * def __getitem__(memoryview self, object index):
8268 : * if index is Ellipsis: # <<<<<<<<<<<<<<
8269 : * return self
8270 : *
8271 : */
8272 : }
8273 :
8274 : /* "View.MemoryView":411
8275 : * return self
8276 : *
8277 : * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<<
8278 : *
8279 : * cdef char *itemp
8280 : */
8281 0 : __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 411, __pyx_L1_error)
8282 0 : __Pyx_GOTREF(__pyx_t_2);
8283 0 : if (likely(__pyx_t_2 != Py_None)) {
8284 0 : PyObject* sequence = __pyx_t_2;
8285 0 : Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
8286 0 : if (unlikely(size != 2)) {
8287 0 : if (size > 2) __Pyx_RaiseTooManyValuesError(2);
8288 0 : else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
8289 0 : __PYX_ERR(1, 411, __pyx_L1_error)
8290 : }
8291 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8292 0 : __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0);
8293 0 : __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1);
8294 0 : __Pyx_INCREF(__pyx_t_3);
8295 0 : __Pyx_INCREF(__pyx_t_4);
8296 : #else
8297 : __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error)
8298 : __Pyx_GOTREF(__pyx_t_3);
8299 : __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 411, __pyx_L1_error)
8300 : __Pyx_GOTREF(__pyx_t_4);
8301 : #endif
8302 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8303 : } else {
8304 0 : __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 411, __pyx_L1_error)
8305 : }
8306 0 : __pyx_v_have_slices = __pyx_t_3;
8307 0 : __pyx_t_3 = 0;
8308 0 : __pyx_v_indices = __pyx_t_4;
8309 0 : __pyx_t_4 = 0;
8310 :
8311 : /* "View.MemoryView":414
8312 : *
8313 : * cdef char *itemp
8314 : * if have_slices: # <<<<<<<<<<<<<<
8315 : * return memview_slice(self, indices)
8316 : * else:
8317 : */
8318 0 : __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 414, __pyx_L1_error)
8319 0 : if (__pyx_t_1) {
8320 :
8321 : /* "View.MemoryView":415
8322 : * cdef char *itemp
8323 : * if have_slices:
8324 : * return memview_slice(self, indices) # <<<<<<<<<<<<<<
8325 : * else:
8326 : * itemp = self.get_item_pointer(indices)
8327 : */
8328 0 : __Pyx_XDECREF(__pyx_r);
8329 0 : __pyx_t_2 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 415, __pyx_L1_error)
8330 0 : __Pyx_GOTREF(__pyx_t_2);
8331 0 : __pyx_r = __pyx_t_2;
8332 0 : __pyx_t_2 = 0;
8333 0 : goto __pyx_L0;
8334 :
8335 : /* "View.MemoryView":414
8336 : *
8337 : * cdef char *itemp
8338 : * if have_slices: # <<<<<<<<<<<<<<
8339 : * return memview_slice(self, indices)
8340 : * else:
8341 : */
8342 : }
8343 :
8344 : /* "View.MemoryView":417
8345 : * return memview_slice(self, indices)
8346 : * else:
8347 : * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<<
8348 : * return self.convert_item_to_object(itemp)
8349 : *
8350 : */
8351 : /*else*/ {
8352 0 : __pyx_t_5 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_5 == ((char *)NULL))) __PYX_ERR(1, 417, __pyx_L1_error)
8353 0 : __pyx_v_itemp = __pyx_t_5;
8354 :
8355 : /* "View.MemoryView":418
8356 : * else:
8357 : * itemp = self.get_item_pointer(indices)
8358 : * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<<
8359 : *
8360 : * def __setitem__(memoryview self, object index, object value):
8361 : */
8362 0 : __Pyx_XDECREF(__pyx_r);
8363 0 : __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 418, __pyx_L1_error)
8364 0 : __Pyx_GOTREF(__pyx_t_2);
8365 0 : __pyx_r = __pyx_t_2;
8366 0 : __pyx_t_2 = 0;
8367 0 : goto __pyx_L0;
8368 : }
8369 :
8370 : /* "View.MemoryView":407
8371 : *
8372 : *
8373 : * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<<
8374 : * if index is Ellipsis:
8375 : * return self
8376 : */
8377 :
8378 : /* function exit code */
8379 0 : __pyx_L1_error:;
8380 0 : __Pyx_XDECREF(__pyx_t_2);
8381 0 : __Pyx_XDECREF(__pyx_t_3);
8382 0 : __Pyx_XDECREF(__pyx_t_4);
8383 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
8384 0 : __pyx_r = NULL;
8385 0 : __pyx_L0:;
8386 0 : __Pyx_XDECREF(__pyx_v_have_slices);
8387 0 : __Pyx_XDECREF(__pyx_v_indices);
8388 0 : __Pyx_XGIVEREF(__pyx_r);
8389 0 : __Pyx_RefNannyFinishContext();
8390 0 : return __pyx_r;
8391 : }
8392 :
8393 : /* "View.MemoryView":420
8394 : * return self.convert_item_to_object(itemp)
8395 : *
8396 : * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<<
8397 : * if self.view.readonly:
8398 : * raise TypeError, "Cannot assign to read-only memoryview"
8399 : */
8400 :
8401 : /* Python wrapper */
8402 : static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/
8403 0 : static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
8404 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
8405 0 : int __pyx_r;
8406 : __Pyx_RefNannyDeclarations
8407 0 : __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0);
8408 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
8409 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value));
8410 :
8411 : /* function exit code */
8412 0 : __Pyx_RefNannyFinishContext();
8413 0 : return __pyx_r;
8414 : }
8415 :
8416 0 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
8417 0 : PyObject *__pyx_v_have_slices = NULL;
8418 0 : PyObject *__pyx_v_obj = NULL;
8419 0 : int __pyx_r;
8420 : __Pyx_RefNannyDeclarations
8421 0 : PyObject *__pyx_t_1 = NULL;
8422 0 : PyObject *__pyx_t_2 = NULL;
8423 0 : PyObject *__pyx_t_3 = NULL;
8424 0 : int __pyx_t_4;
8425 0 : int __pyx_lineno = 0;
8426 0 : const char *__pyx_filename = NULL;
8427 0 : int __pyx_clineno = 0;
8428 0 : __Pyx_RefNannySetupContext("__setitem__", 0);
8429 0 : __Pyx_INCREF(__pyx_v_index);
8430 :
8431 : /* "View.MemoryView":421
8432 : *
8433 : * def __setitem__(memoryview self, object index, object value):
8434 : * if self.view.readonly: # <<<<<<<<<<<<<<
8435 : * raise TypeError, "Cannot assign to read-only memoryview"
8436 : *
8437 : */
8438 0 : if (unlikely(__pyx_v_self->view.readonly)) {
8439 :
8440 : /* "View.MemoryView":422
8441 : * def __setitem__(memoryview self, object index, object value):
8442 : * if self.view.readonly:
8443 : * raise TypeError, "Cannot assign to read-only memoryview" # <<<<<<<<<<<<<<
8444 : *
8445 : * have_slices, index = _unellipsify(index, self.view.ndim)
8446 : */
8447 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_Cannot_assign_to_read_only_memor, 0, 0);
8448 0 : __PYX_ERR(1, 422, __pyx_L1_error)
8449 :
8450 : /* "View.MemoryView":421
8451 : *
8452 : * def __setitem__(memoryview self, object index, object value):
8453 : * if self.view.readonly: # <<<<<<<<<<<<<<
8454 : * raise TypeError, "Cannot assign to read-only memoryview"
8455 : *
8456 : */
8457 : }
8458 :
8459 : /* "View.MemoryView":424
8460 : * raise TypeError, "Cannot assign to read-only memoryview"
8461 : *
8462 : * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<<
8463 : *
8464 : * if have_slices:
8465 : */
8466 0 : __pyx_t_1 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 424, __pyx_L1_error)
8467 0 : __Pyx_GOTREF(__pyx_t_1);
8468 0 : if (likely(__pyx_t_1 != Py_None)) {
8469 0 : PyObject* sequence = __pyx_t_1;
8470 0 : Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
8471 0 : if (unlikely(size != 2)) {
8472 0 : if (size > 2) __Pyx_RaiseTooManyValuesError(2);
8473 0 : else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
8474 0 : __PYX_ERR(1, 424, __pyx_L1_error)
8475 : }
8476 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
8477 0 : __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0);
8478 0 : __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1);
8479 0 : __Pyx_INCREF(__pyx_t_2);
8480 0 : __Pyx_INCREF(__pyx_t_3);
8481 : #else
8482 : __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 424, __pyx_L1_error)
8483 : __Pyx_GOTREF(__pyx_t_2);
8484 : __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 424, __pyx_L1_error)
8485 : __Pyx_GOTREF(__pyx_t_3);
8486 : #endif
8487 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8488 : } else {
8489 0 : __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 424, __pyx_L1_error)
8490 : }
8491 0 : __pyx_v_have_slices = __pyx_t_2;
8492 0 : __pyx_t_2 = 0;
8493 0 : __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3);
8494 0 : __pyx_t_3 = 0;
8495 :
8496 : /* "View.MemoryView":426
8497 : * have_slices, index = _unellipsify(index, self.view.ndim)
8498 : *
8499 : * if have_slices: # <<<<<<<<<<<<<<
8500 : * obj = self.is_slice(value)
8501 : * if obj is not None:
8502 : */
8503 0 : __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(1, 426, __pyx_L1_error)
8504 0 : if (__pyx_t_4) {
8505 :
8506 : /* "View.MemoryView":427
8507 : *
8508 : * if have_slices:
8509 : * obj = self.is_slice(value) # <<<<<<<<<<<<<<
8510 : * if obj is not None:
8511 : * self.setitem_slice_assignment(self[index], obj)
8512 : */
8513 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 427, __pyx_L1_error)
8514 0 : __Pyx_GOTREF(__pyx_t_1);
8515 0 : __pyx_v_obj = __pyx_t_1;
8516 0 : __pyx_t_1 = 0;
8517 :
8518 : /* "View.MemoryView":428
8519 : * if have_slices:
8520 : * obj = self.is_slice(value)
8521 : * if obj is not None: # <<<<<<<<<<<<<<
8522 : * self.setitem_slice_assignment(self[index], obj)
8523 : * else:
8524 : */
8525 0 : __pyx_t_4 = (__pyx_v_obj != Py_None);
8526 0 : if (__pyx_t_4) {
8527 :
8528 : /* "View.MemoryView":429
8529 : * obj = self.is_slice(value)
8530 : * if obj is not None:
8531 : * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<<
8532 : * else:
8533 : * self.setitem_slice_assign_scalar(self[index], value)
8534 : */
8535 0 : __pyx_t_1 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 429, __pyx_L1_error)
8536 0 : __Pyx_GOTREF(__pyx_t_1);
8537 0 : __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_1, __pyx_v_obj); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 429, __pyx_L1_error)
8538 0 : __Pyx_GOTREF(__pyx_t_3);
8539 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8540 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8541 :
8542 : /* "View.MemoryView":428
8543 : * if have_slices:
8544 : * obj = self.is_slice(value)
8545 : * if obj is not None: # <<<<<<<<<<<<<<
8546 : * self.setitem_slice_assignment(self[index], obj)
8547 : * else:
8548 : */
8549 0 : goto __pyx_L5;
8550 : }
8551 :
8552 : /* "View.MemoryView":431
8553 : * self.setitem_slice_assignment(self[index], obj)
8554 : * else:
8555 : * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<<
8556 : * else:
8557 : * self.setitem_indexed(index, value)
8558 : */
8559 : /*else*/ {
8560 0 : __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 431, __pyx_L1_error)
8561 0 : __Pyx_GOTREF(__pyx_t_3);
8562 0 : if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(1, 431, __pyx_L1_error)
8563 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_3), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 431, __pyx_L1_error)
8564 0 : __Pyx_GOTREF(__pyx_t_1);
8565 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
8566 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8567 : }
8568 0 : __pyx_L5:;
8569 :
8570 : /* "View.MemoryView":426
8571 : * have_slices, index = _unellipsify(index, self.view.ndim)
8572 : *
8573 : * if have_slices: # <<<<<<<<<<<<<<
8574 : * obj = self.is_slice(value)
8575 : * if obj is not None:
8576 : */
8577 0 : goto __pyx_L4;
8578 : }
8579 :
8580 : /* "View.MemoryView":433
8581 : * self.setitem_slice_assign_scalar(self[index], value)
8582 : * else:
8583 : * self.setitem_indexed(index, value) # <<<<<<<<<<<<<<
8584 : *
8585 : * cdef is_slice(self, obj):
8586 : */
8587 : /*else*/ {
8588 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 433, __pyx_L1_error)
8589 0 : __Pyx_GOTREF(__pyx_t_1);
8590 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
8591 : }
8592 0 : __pyx_L4:;
8593 :
8594 : /* "View.MemoryView":420
8595 : * return self.convert_item_to_object(itemp)
8596 : *
8597 : * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<<
8598 : * if self.view.readonly:
8599 : * raise TypeError, "Cannot assign to read-only memoryview"
8600 : */
8601 :
8602 : /* function exit code */
8603 0 : __pyx_r = 0;
8604 0 : goto __pyx_L0;
8605 0 : __pyx_L1_error:;
8606 0 : __Pyx_XDECREF(__pyx_t_1);
8607 0 : __Pyx_XDECREF(__pyx_t_2);
8608 0 : __Pyx_XDECREF(__pyx_t_3);
8609 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
8610 0 : __pyx_r = -1;
8611 0 : __pyx_L0:;
8612 0 : __Pyx_XDECREF(__pyx_v_have_slices);
8613 0 : __Pyx_XDECREF(__pyx_v_obj);
8614 0 : __Pyx_XDECREF(__pyx_v_index);
8615 0 : __Pyx_RefNannyFinishContext();
8616 0 : return __pyx_r;
8617 : }
8618 :
8619 : /* "View.MemoryView":435
8620 : * self.setitem_indexed(index, value)
8621 : *
8622 : * cdef is_slice(self, obj): # <<<<<<<<<<<<<<
8623 : * if not isinstance(obj, memoryview):
8624 : * try:
8625 : */
8626 :
8627 0 : static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) {
8628 0 : PyObject *__pyx_r = NULL;
8629 : __Pyx_RefNannyDeclarations
8630 0 : int __pyx_t_1;
8631 0 : int __pyx_t_2;
8632 0 : PyObject *__pyx_t_3 = NULL;
8633 0 : PyObject *__pyx_t_4 = NULL;
8634 0 : PyObject *__pyx_t_5 = NULL;
8635 0 : PyObject *__pyx_t_6 = NULL;
8636 0 : PyObject *__pyx_t_7 = NULL;
8637 0 : PyObject *__pyx_t_8 = NULL;
8638 0 : int __pyx_t_9;
8639 0 : int __pyx_lineno = 0;
8640 0 : const char *__pyx_filename = NULL;
8641 0 : int __pyx_clineno = 0;
8642 0 : __Pyx_RefNannySetupContext("is_slice", 0);
8643 0 : __Pyx_INCREF(__pyx_v_obj);
8644 :
8645 : /* "View.MemoryView":436
8646 : *
8647 : * cdef is_slice(self, obj):
8648 : * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<<
8649 : * try:
8650 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8651 : */
8652 0 : __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type);
8653 0 : __pyx_t_2 = (!__pyx_t_1);
8654 0 : if (__pyx_t_2) {
8655 :
8656 : /* "View.MemoryView":437
8657 : * cdef is_slice(self, obj):
8658 : * if not isinstance(obj, memoryview):
8659 : * try: # <<<<<<<<<<<<<<
8660 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8661 : * self.dtype_is_object)
8662 : */
8663 : {
8664 0 : __Pyx_PyThreadState_declare
8665 0 : __Pyx_PyThreadState_assign
8666 0 : __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
8667 0 : __Pyx_XGOTREF(__pyx_t_3);
8668 0 : __Pyx_XGOTREF(__pyx_t_4);
8669 0 : __Pyx_XGOTREF(__pyx_t_5);
8670 : /*try:*/ {
8671 :
8672 : /* "View.MemoryView":438
8673 : * if not isinstance(obj, memoryview):
8674 : * try:
8675 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<<
8676 : * self.dtype_is_object)
8677 : * except TypeError:
8678 : */
8679 0 : __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 438, __pyx_L4_error)
8680 0 : __Pyx_GOTREF(__pyx_t_6);
8681 :
8682 : /* "View.MemoryView":439
8683 : * try:
8684 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8685 : * self.dtype_is_object) # <<<<<<<<<<<<<<
8686 : * except TypeError:
8687 : * return None
8688 : */
8689 0 : __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 439, __pyx_L4_error)
8690 0 : __Pyx_GOTREF(__pyx_t_7);
8691 :
8692 : /* "View.MemoryView":438
8693 : * if not isinstance(obj, memoryview):
8694 : * try:
8695 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<<
8696 : * self.dtype_is_object)
8697 : * except TypeError:
8698 : */
8699 0 : __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 438, __pyx_L4_error)
8700 0 : __Pyx_GOTREF(__pyx_t_8);
8701 0 : __Pyx_INCREF(__pyx_v_obj);
8702 0 : __Pyx_GIVEREF(__pyx_v_obj);
8703 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj)) __PYX_ERR(1, 438, __pyx_L4_error);
8704 0 : __Pyx_GIVEREF(__pyx_t_6);
8705 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6)) __PYX_ERR(1, 438, __pyx_L4_error);
8706 0 : __Pyx_GIVEREF(__pyx_t_7);
8707 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7)) __PYX_ERR(1, 438, __pyx_L4_error);
8708 0 : __pyx_t_6 = 0;
8709 0 : __pyx_t_7 = 0;
8710 0 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 438, __pyx_L4_error)
8711 0 : __Pyx_GOTREF(__pyx_t_7);
8712 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8713 0 : __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7);
8714 0 : __pyx_t_7 = 0;
8715 :
8716 : /* "View.MemoryView":437
8717 : * cdef is_slice(self, obj):
8718 : * if not isinstance(obj, memoryview):
8719 : * try: # <<<<<<<<<<<<<<
8720 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8721 : * self.dtype_is_object)
8722 : */
8723 : }
8724 0 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
8725 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
8726 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
8727 0 : goto __pyx_L9_try_end;
8728 0 : __pyx_L4_error:;
8729 0 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
8730 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
8731 0 : __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
8732 :
8733 : /* "View.MemoryView":440
8734 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8735 : * self.dtype_is_object)
8736 : * except TypeError: # <<<<<<<<<<<<<<
8737 : * return None
8738 : *
8739 : */
8740 0 : __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError);
8741 0 : if (__pyx_t_9) {
8742 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
8743 0 : if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(1, 440, __pyx_L6_except_error)
8744 0 : __Pyx_XGOTREF(__pyx_t_7);
8745 0 : __Pyx_XGOTREF(__pyx_t_8);
8746 0 : __Pyx_XGOTREF(__pyx_t_6);
8747 :
8748 : /* "View.MemoryView":441
8749 : * self.dtype_is_object)
8750 : * except TypeError:
8751 : * return None # <<<<<<<<<<<<<<
8752 : *
8753 : * return obj
8754 : */
8755 0 : __Pyx_XDECREF(__pyx_r);
8756 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8757 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
8758 0 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
8759 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
8760 0 : goto __pyx_L7_except_return;
8761 : }
8762 0 : goto __pyx_L6_except_error;
8763 :
8764 : /* "View.MemoryView":437
8765 : * cdef is_slice(self, obj):
8766 : * if not isinstance(obj, memoryview):
8767 : * try: # <<<<<<<<<<<<<<
8768 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8769 : * self.dtype_is_object)
8770 : */
8771 0 : __pyx_L6_except_error:;
8772 0 : __Pyx_XGIVEREF(__pyx_t_3);
8773 0 : __Pyx_XGIVEREF(__pyx_t_4);
8774 0 : __Pyx_XGIVEREF(__pyx_t_5);
8775 0 : __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
8776 0 : goto __pyx_L1_error;
8777 0 : __pyx_L7_except_return:;
8778 0 : __Pyx_XGIVEREF(__pyx_t_3);
8779 0 : __Pyx_XGIVEREF(__pyx_t_4);
8780 0 : __Pyx_XGIVEREF(__pyx_t_5);
8781 0 : __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
8782 0 : goto __pyx_L0;
8783 0 : __pyx_L9_try_end:;
8784 : }
8785 :
8786 : /* "View.MemoryView":436
8787 : *
8788 : * cdef is_slice(self, obj):
8789 : * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<<
8790 : * try:
8791 : * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS,
8792 : */
8793 : }
8794 :
8795 : /* "View.MemoryView":443
8796 : * return None
8797 : *
8798 : * return obj # <<<<<<<<<<<<<<
8799 : *
8800 : * cdef setitem_slice_assignment(self, dst, src):
8801 : */
8802 0 : __Pyx_XDECREF(__pyx_r);
8803 0 : __Pyx_INCREF(__pyx_v_obj);
8804 0 : __pyx_r = __pyx_v_obj;
8805 0 : goto __pyx_L0;
8806 :
8807 : /* "View.MemoryView":435
8808 : * self.setitem_indexed(index, value)
8809 : *
8810 : * cdef is_slice(self, obj): # <<<<<<<<<<<<<<
8811 : * if not isinstance(obj, memoryview):
8812 : * try:
8813 : */
8814 :
8815 : /* function exit code */
8816 0 : __pyx_L1_error:;
8817 0 : __Pyx_XDECREF(__pyx_t_6);
8818 0 : __Pyx_XDECREF(__pyx_t_7);
8819 0 : __Pyx_XDECREF(__pyx_t_8);
8820 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
8821 0 : __pyx_r = 0;
8822 0 : __pyx_L0:;
8823 0 : __Pyx_XDECREF(__pyx_v_obj);
8824 0 : __Pyx_XGIVEREF(__pyx_r);
8825 0 : __Pyx_RefNannyFinishContext();
8826 0 : return __pyx_r;
8827 : }
8828 :
8829 : /* "View.MemoryView":445
8830 : * return obj
8831 : *
8832 : * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<<
8833 : * cdef __Pyx_memviewslice dst_slice
8834 : * cdef __Pyx_memviewslice src_slice
8835 : */
8836 :
8837 0 : static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) {
8838 0 : __Pyx_memviewslice __pyx_v_dst_slice;
8839 0 : __Pyx_memviewslice __pyx_v_src_slice;
8840 0 : __Pyx_memviewslice __pyx_v_msrc;
8841 0 : __Pyx_memviewslice __pyx_v_mdst;
8842 0 : PyObject *__pyx_r = NULL;
8843 : __Pyx_RefNannyDeclarations
8844 0 : __Pyx_memviewslice *__pyx_t_1;
8845 0 : PyObject *__pyx_t_2 = NULL;
8846 0 : int __pyx_t_3;
8847 0 : int __pyx_t_4;
8848 0 : int __pyx_t_5;
8849 0 : int __pyx_lineno = 0;
8850 0 : const char *__pyx_filename = NULL;
8851 0 : int __pyx_clineno = 0;
8852 0 : __Pyx_RefNannySetupContext("setitem_slice_assignment", 1);
8853 :
8854 : /* "View.MemoryView":448
8855 : * cdef __Pyx_memviewslice dst_slice
8856 : * cdef __Pyx_memviewslice src_slice
8857 : * cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0] # <<<<<<<<<<<<<<
8858 : * cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
8859 : *
8860 : */
8861 0 : if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(1, 448, __pyx_L1_error)
8862 0 : __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 448, __pyx_L1_error)
8863 0 : __pyx_v_msrc = (__pyx_t_1[0]);
8864 :
8865 : /* "View.MemoryView":449
8866 : * cdef __Pyx_memviewslice src_slice
8867 : * cdef __Pyx_memviewslice msrc = get_slice_from_memview(src, &src_slice)[0]
8868 : * cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0] # <<<<<<<<<<<<<<
8869 : *
8870 : * memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
8871 : */
8872 0 : if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(1, 449, __pyx_L1_error)
8873 0 : __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 449, __pyx_L1_error)
8874 0 : __pyx_v_mdst = (__pyx_t_1[0]);
8875 :
8876 : /* "View.MemoryView":451
8877 : * cdef __Pyx_memviewslice mdst = get_slice_from_memview(dst, &dst_slice)[0]
8878 : *
8879 : * memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<<
8880 : *
8881 : * cdef setitem_slice_assign_scalar(self, memoryview dst, value):
8882 : */
8883 0 : __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 451, __pyx_L1_error)
8884 0 : __Pyx_GOTREF(__pyx_t_2);
8885 0 : __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 451, __pyx_L1_error)
8886 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8887 0 : __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 451, __pyx_L1_error)
8888 0 : __Pyx_GOTREF(__pyx_t_2);
8889 0 : __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 451, __pyx_L1_error)
8890 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
8891 0 : __pyx_t_5 = __pyx_memoryview_copy_contents(__pyx_v_msrc, __pyx_v_mdst, __pyx_t_3, __pyx_t_4, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 451, __pyx_L1_error)
8892 :
8893 : /* "View.MemoryView":445
8894 : * return obj
8895 : *
8896 : * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<<
8897 : * cdef __Pyx_memviewslice dst_slice
8898 : * cdef __Pyx_memviewslice src_slice
8899 : */
8900 :
8901 : /* function exit code */
8902 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
8903 0 : goto __pyx_L0;
8904 0 : __pyx_L1_error:;
8905 0 : __Pyx_XDECREF(__pyx_t_2);
8906 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename);
8907 0 : __pyx_r = 0;
8908 0 : __pyx_L0:;
8909 0 : __Pyx_XGIVEREF(__pyx_r);
8910 0 : __Pyx_RefNannyFinishContext();
8911 0 : return __pyx_r;
8912 : }
8913 :
8914 : /* "View.MemoryView":453
8915 : * memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
8916 : *
8917 : * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<<
8918 : * cdef int array[128]
8919 : * cdef void *tmp = NULL
8920 : */
8921 :
8922 0 : static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) {
8923 0 : int __pyx_v_array[0x80];
8924 0 : void *__pyx_v_tmp;
8925 0 : void *__pyx_v_item;
8926 0 : __Pyx_memviewslice *__pyx_v_dst_slice;
8927 0 : __Pyx_memviewslice __pyx_v_tmp_slice;
8928 0 : PyObject *__pyx_r = NULL;
8929 : __Pyx_RefNannyDeclarations
8930 0 : __Pyx_memviewslice *__pyx_t_1;
8931 0 : int __pyx_t_2;
8932 0 : PyObject *__pyx_t_3 = NULL;
8933 0 : int __pyx_t_4;
8934 0 : int __pyx_t_5;
8935 0 : char const *__pyx_t_6;
8936 0 : PyObject *__pyx_t_7 = NULL;
8937 0 : PyObject *__pyx_t_8 = NULL;
8938 0 : PyObject *__pyx_t_9 = NULL;
8939 0 : PyObject *__pyx_t_10 = NULL;
8940 0 : PyObject *__pyx_t_11 = NULL;
8941 0 : PyObject *__pyx_t_12 = NULL;
8942 0 : int __pyx_lineno = 0;
8943 0 : const char *__pyx_filename = NULL;
8944 0 : int __pyx_clineno = 0;
8945 0 : __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 1);
8946 :
8947 : /* "View.MemoryView":455
8948 : * cdef setitem_slice_assign_scalar(self, memoryview dst, value):
8949 : * cdef int array[128]
8950 : * cdef void *tmp = NULL # <<<<<<<<<<<<<<
8951 : * cdef void *item
8952 : *
8953 : */
8954 0 : __pyx_v_tmp = NULL;
8955 :
8956 : /* "View.MemoryView":460
8957 : * cdef __Pyx_memviewslice *dst_slice
8958 : * cdef __Pyx_memviewslice tmp_slice
8959 : * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<<
8960 : *
8961 : * if <size_t>self.view.itemsize > sizeof(array):
8962 : */
8963 0 : __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 460, __pyx_L1_error)
8964 0 : __pyx_v_dst_slice = __pyx_t_1;
8965 :
8966 : /* "View.MemoryView":462
8967 : * dst_slice = get_slice_from_memview(dst, &tmp_slice)
8968 : *
8969 : * if <size_t>self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<<
8970 : * tmp = PyMem_Malloc(self.view.itemsize)
8971 : * if tmp == NULL:
8972 : */
8973 0 : __pyx_t_2 = (((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array)));
8974 0 : if (__pyx_t_2) {
8975 :
8976 : /* "View.MemoryView":463
8977 : *
8978 : * if <size_t>self.view.itemsize > sizeof(array):
8979 : * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<<
8980 : * if tmp == NULL:
8981 : * raise MemoryError
8982 : */
8983 0 : __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize);
8984 :
8985 : /* "View.MemoryView":464
8986 : * if <size_t>self.view.itemsize > sizeof(array):
8987 : * tmp = PyMem_Malloc(self.view.itemsize)
8988 : * if tmp == NULL: # <<<<<<<<<<<<<<
8989 : * raise MemoryError
8990 : * item = tmp
8991 : */
8992 0 : __pyx_t_2 = (__pyx_v_tmp == NULL);
8993 0 : if (unlikely(__pyx_t_2)) {
8994 :
8995 : /* "View.MemoryView":465
8996 : * tmp = PyMem_Malloc(self.view.itemsize)
8997 : * if tmp == NULL:
8998 : * raise MemoryError # <<<<<<<<<<<<<<
8999 : * item = tmp
9000 : * else:
9001 : */
9002 0 : PyErr_NoMemory(); __PYX_ERR(1, 465, __pyx_L1_error)
9003 :
9004 : /* "View.MemoryView":464
9005 : * if <size_t>self.view.itemsize > sizeof(array):
9006 : * tmp = PyMem_Malloc(self.view.itemsize)
9007 : * if tmp == NULL: # <<<<<<<<<<<<<<
9008 : * raise MemoryError
9009 : * item = tmp
9010 : */
9011 : }
9012 :
9013 : /* "View.MemoryView":466
9014 : * if tmp == NULL:
9015 : * raise MemoryError
9016 : * item = tmp # <<<<<<<<<<<<<<
9017 : * else:
9018 : * item = <void *> array
9019 : */
9020 0 : __pyx_v_item = __pyx_v_tmp;
9021 :
9022 : /* "View.MemoryView":462
9023 : * dst_slice = get_slice_from_memview(dst, &tmp_slice)
9024 : *
9025 : * if <size_t>self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<<
9026 : * tmp = PyMem_Malloc(self.view.itemsize)
9027 : * if tmp == NULL:
9028 : */
9029 0 : goto __pyx_L3;
9030 : }
9031 :
9032 : /* "View.MemoryView":468
9033 : * item = tmp
9034 : * else:
9035 : * item = <void *> array # <<<<<<<<<<<<<<
9036 : *
9037 : * try:
9038 : */
9039 : /*else*/ {
9040 : __pyx_v_item = ((void *)__pyx_v_array);
9041 : }
9042 0 : __pyx_L3:;
9043 :
9044 : /* "View.MemoryView":470
9045 : * item = <void *> array
9046 : *
9047 : * try: # <<<<<<<<<<<<<<
9048 : * if self.dtype_is_object:
9049 : * (<PyObject **> item)[0] = <PyObject *> value
9050 : */
9051 : /*try:*/ {
9052 :
9053 : /* "View.MemoryView":471
9054 : *
9055 : * try:
9056 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
9057 : * (<PyObject **> item)[0] = <PyObject *> value
9058 : * else:
9059 : */
9060 0 : if (__pyx_v_self->dtype_is_object) {
9061 :
9062 : /* "View.MemoryView":472
9063 : * try:
9064 : * if self.dtype_is_object:
9065 : * (<PyObject **> item)[0] = <PyObject *> value # <<<<<<<<<<<<<<
9066 : * else:
9067 : * self.assign_item_from_object(<char *> item, value)
9068 : */
9069 0 : (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value);
9070 :
9071 : /* "View.MemoryView":471
9072 : *
9073 : * try:
9074 : * if self.dtype_is_object: # <<<<<<<<<<<<<<
9075 : * (<PyObject **> item)[0] = <PyObject *> value
9076 : * else:
9077 : */
9078 0 : goto __pyx_L8;
9079 : }
9080 :
9081 : /* "View.MemoryView":474
9082 : * (<PyObject **> item)[0] = <PyObject *> value
9083 : * else:
9084 : * self.assign_item_from_object(<char *> item, value) # <<<<<<<<<<<<<<
9085 : *
9086 : *
9087 : */
9088 : /*else*/ {
9089 0 : __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 474, __pyx_L6_error)
9090 0 : __Pyx_GOTREF(__pyx_t_3);
9091 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9092 : }
9093 0 : __pyx_L8:;
9094 :
9095 : /* "View.MemoryView":478
9096 : *
9097 : *
9098 : * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<<
9099 : * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
9100 : * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
9101 : */
9102 0 : __pyx_t_2 = (__pyx_v_self->view.suboffsets != NULL);
9103 0 : if (__pyx_t_2) {
9104 :
9105 : /* "View.MemoryView":479
9106 : *
9107 : * if self.view.suboffsets != NULL:
9108 : * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<<
9109 : * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
9110 : * item, self.dtype_is_object)
9111 : */
9112 0 : __pyx_t_4 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 479, __pyx_L6_error)
9113 :
9114 : /* "View.MemoryView":478
9115 : *
9116 : *
9117 : * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<<
9118 : * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
9119 : * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize,
9120 : */
9121 : }
9122 :
9123 : /* "View.MemoryView":480
9124 : * if self.view.suboffsets != NULL:
9125 : * assert_direct_dimensions(self.view.suboffsets, self.view.ndim)
9126 : * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<<
9127 : * item, self.dtype_is_object)
9128 : * finally:
9129 : */
9130 0 : __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object);
9131 : }
9132 :
9133 : /* "View.MemoryView":483
9134 : * item, self.dtype_is_object)
9135 : * finally:
9136 : * PyMem_Free(tmp) # <<<<<<<<<<<<<<
9137 : *
9138 : * cdef setitem_indexed(self, index, value):
9139 : */
9140 : /*finally:*/ {
9141 : /*normal exit:*/{
9142 0 : PyMem_Free(__pyx_v_tmp);
9143 0 : goto __pyx_L7;
9144 : }
9145 0 : __pyx_L6_error:;
9146 : /*exception exit:*/{
9147 0 : __Pyx_PyThreadState_declare
9148 0 : __Pyx_PyThreadState_assign
9149 0 : __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
9150 0 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
9151 0 : if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
9152 0 : if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
9153 0 : __Pyx_XGOTREF(__pyx_t_7);
9154 0 : __Pyx_XGOTREF(__pyx_t_8);
9155 0 : __Pyx_XGOTREF(__pyx_t_9);
9156 0 : __Pyx_XGOTREF(__pyx_t_10);
9157 0 : __Pyx_XGOTREF(__pyx_t_11);
9158 0 : __Pyx_XGOTREF(__pyx_t_12);
9159 0 : __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename;
9160 : {
9161 0 : PyMem_Free(__pyx_v_tmp);
9162 : }
9163 0 : if (PY_MAJOR_VERSION >= 3) {
9164 0 : __Pyx_XGIVEREF(__pyx_t_10);
9165 0 : __Pyx_XGIVEREF(__pyx_t_11);
9166 0 : __Pyx_XGIVEREF(__pyx_t_12);
9167 0 : __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
9168 : }
9169 0 : __Pyx_XGIVEREF(__pyx_t_7);
9170 0 : __Pyx_XGIVEREF(__pyx_t_8);
9171 0 : __Pyx_XGIVEREF(__pyx_t_9);
9172 0 : __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9);
9173 0 : __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0;
9174 0 : __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6;
9175 0 : goto __pyx_L1_error;
9176 : }
9177 0 : __pyx_L7:;
9178 : }
9179 :
9180 : /* "View.MemoryView":453
9181 : * memoryview_copy_contents(msrc, mdst, src.ndim, dst.ndim, self.dtype_is_object)
9182 : *
9183 : * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<<
9184 : * cdef int array[128]
9185 : * cdef void *tmp = NULL
9186 : */
9187 :
9188 : /* function exit code */
9189 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9190 0 : goto __pyx_L0;
9191 0 : __pyx_L1_error:;
9192 0 : __Pyx_XDECREF(__pyx_t_3);
9193 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename);
9194 0 : __pyx_r = 0;
9195 0 : __pyx_L0:;
9196 0 : __Pyx_XGIVEREF(__pyx_r);
9197 0 : __Pyx_RefNannyFinishContext();
9198 0 : return __pyx_r;
9199 : }
9200 :
9201 : /* "View.MemoryView":485
9202 : * PyMem_Free(tmp)
9203 : *
9204 : * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<<
9205 : * cdef char *itemp = self.get_item_pointer(index)
9206 : * self.assign_item_from_object(itemp, value)
9207 : */
9208 :
9209 0 : static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) {
9210 0 : char *__pyx_v_itemp;
9211 0 : PyObject *__pyx_r = NULL;
9212 : __Pyx_RefNannyDeclarations
9213 0 : char *__pyx_t_1;
9214 0 : PyObject *__pyx_t_2 = NULL;
9215 0 : int __pyx_lineno = 0;
9216 0 : const char *__pyx_filename = NULL;
9217 0 : int __pyx_clineno = 0;
9218 0 : __Pyx_RefNannySetupContext("setitem_indexed", 1);
9219 :
9220 : /* "View.MemoryView":486
9221 : *
9222 : * cdef setitem_indexed(self, index, value):
9223 : * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<<
9224 : * self.assign_item_from_object(itemp, value)
9225 : *
9226 : */
9227 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(1, 486, __pyx_L1_error)
9228 0 : __pyx_v_itemp = __pyx_t_1;
9229 :
9230 : /* "View.MemoryView":487
9231 : * cdef setitem_indexed(self, index, value):
9232 : * cdef char *itemp = self.get_item_pointer(index)
9233 : * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<<
9234 : *
9235 : * cdef convert_item_to_object(self, char *itemp):
9236 : */
9237 0 : __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 487, __pyx_L1_error)
9238 0 : __Pyx_GOTREF(__pyx_t_2);
9239 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
9240 :
9241 : /* "View.MemoryView":485
9242 : * PyMem_Free(tmp)
9243 : *
9244 : * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<<
9245 : * cdef char *itemp = self.get_item_pointer(index)
9246 : * self.assign_item_from_object(itemp, value)
9247 : */
9248 :
9249 : /* function exit code */
9250 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9251 0 : goto __pyx_L0;
9252 0 : __pyx_L1_error:;
9253 0 : __Pyx_XDECREF(__pyx_t_2);
9254 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename);
9255 0 : __pyx_r = 0;
9256 0 : __pyx_L0:;
9257 0 : __Pyx_XGIVEREF(__pyx_r);
9258 0 : __Pyx_RefNannyFinishContext();
9259 0 : return __pyx_r;
9260 : }
9261 :
9262 : /* "View.MemoryView":489
9263 : * self.assign_item_from_object(itemp, value)
9264 : *
9265 : * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
9266 : * """Only used if instantiated manually by the user, or if Cython doesn't
9267 : * know how to convert the type"""
9268 : */
9269 :
9270 0 : static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) {
9271 0 : PyObject *__pyx_v_struct = NULL;
9272 0 : PyObject *__pyx_v_bytesitem = 0;
9273 0 : PyObject *__pyx_v_result = NULL;
9274 0 : PyObject *__pyx_r = NULL;
9275 : __Pyx_RefNannyDeclarations
9276 0 : PyObject *__pyx_t_1 = NULL;
9277 0 : PyObject *__pyx_t_2 = NULL;
9278 0 : PyObject *__pyx_t_3 = NULL;
9279 0 : PyObject *__pyx_t_4 = NULL;
9280 0 : PyObject *__pyx_t_5 = NULL;
9281 0 : PyObject *__pyx_t_6 = NULL;
9282 0 : PyObject *__pyx_t_7 = NULL;
9283 0 : unsigned int __pyx_t_8;
9284 0 : Py_ssize_t __pyx_t_9;
9285 0 : int __pyx_t_10;
9286 0 : int __pyx_t_11;
9287 0 : int __pyx_lineno = 0;
9288 0 : const char *__pyx_filename = NULL;
9289 0 : int __pyx_clineno = 0;
9290 0 : __Pyx_RefNannySetupContext("convert_item_to_object", 1);
9291 :
9292 : /* "View.MemoryView":492
9293 : * """Only used if instantiated manually by the user, or if Cython doesn't
9294 : * know how to convert the type"""
9295 : * import struct # <<<<<<<<<<<<<<
9296 : * cdef bytes bytesitem
9297 : *
9298 : */
9299 0 : __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 492, __pyx_L1_error)
9300 0 : __Pyx_GOTREF(__pyx_t_1);
9301 0 : __pyx_v_struct = __pyx_t_1;
9302 0 : __pyx_t_1 = 0;
9303 :
9304 : /* "View.MemoryView":495
9305 : * cdef bytes bytesitem
9306 : *
9307 : * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<<
9308 : * try:
9309 : * result = struct.unpack(self.view.format, bytesitem)
9310 : */
9311 0 : __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 495, __pyx_L1_error)
9312 0 : __Pyx_GOTREF(__pyx_t_1);
9313 0 : __pyx_v_bytesitem = ((PyObject*)__pyx_t_1);
9314 0 : __pyx_t_1 = 0;
9315 :
9316 : /* "View.MemoryView":496
9317 : *
9318 : * bytesitem = itemp[:self.view.itemsize]
9319 : * try: # <<<<<<<<<<<<<<
9320 : * result = struct.unpack(self.view.format, bytesitem)
9321 : * except struct.error:
9322 : */
9323 : {
9324 0 : __Pyx_PyThreadState_declare
9325 0 : __Pyx_PyThreadState_assign
9326 0 : __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
9327 0 : __Pyx_XGOTREF(__pyx_t_2);
9328 0 : __Pyx_XGOTREF(__pyx_t_3);
9329 0 : __Pyx_XGOTREF(__pyx_t_4);
9330 : /*try:*/ {
9331 :
9332 : /* "View.MemoryView":497
9333 : * bytesitem = itemp[:self.view.itemsize]
9334 : * try:
9335 : * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<<
9336 : * except struct.error:
9337 : * raise ValueError, "Unable to convert item to object"
9338 : */
9339 0 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 497, __pyx_L3_error)
9340 0 : __Pyx_GOTREF(__pyx_t_5);
9341 0 : __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 497, __pyx_L3_error)
9342 0 : __Pyx_GOTREF(__pyx_t_6);
9343 0 : __pyx_t_7 = NULL;
9344 0 : __pyx_t_8 = 0;
9345 : #if CYTHON_UNPACK_METHODS
9346 0 : if (likely(PyMethod_Check(__pyx_t_5))) {
9347 0 : __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
9348 0 : if (likely(__pyx_t_7)) {
9349 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
9350 0 : __Pyx_INCREF(__pyx_t_7);
9351 0 : __Pyx_INCREF(function);
9352 0 : __Pyx_DECREF_SET(__pyx_t_5, function);
9353 : __pyx_t_8 = 1;
9354 : }
9355 : }
9356 : #endif
9357 : {
9358 0 : PyObject *__pyx_callargs[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem};
9359 0 : __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_8, 2+__pyx_t_8);
9360 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
9361 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
9362 0 : if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 497, __pyx_L3_error)
9363 0 : __Pyx_GOTREF(__pyx_t_1);
9364 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9365 : }
9366 0 : __pyx_v_result = __pyx_t_1;
9367 0 : __pyx_t_1 = 0;
9368 :
9369 : /* "View.MemoryView":496
9370 : *
9371 : * bytesitem = itemp[:self.view.itemsize]
9372 : * try: # <<<<<<<<<<<<<<
9373 : * result = struct.unpack(self.view.format, bytesitem)
9374 : * except struct.error:
9375 : */
9376 : }
9377 :
9378 : /* "View.MemoryView":501
9379 : * raise ValueError, "Unable to convert item to object"
9380 : * else:
9381 : * if len(self.view.format) == 1: # <<<<<<<<<<<<<<
9382 : * return result[0]
9383 : * return result
9384 : */
9385 : /*else:*/ {
9386 0 : __pyx_t_9 = __Pyx_ssize_strlen(__pyx_v_self->view.format); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(1, 501, __pyx_L5_except_error)
9387 0 : __pyx_t_10 = (__pyx_t_9 == 1);
9388 0 : if (__pyx_t_10) {
9389 :
9390 : /* "View.MemoryView":502
9391 : * else:
9392 : * if len(self.view.format) == 1:
9393 : * return result[0] # <<<<<<<<<<<<<<
9394 : * return result
9395 : *
9396 : */
9397 0 : __Pyx_XDECREF(__pyx_r);
9398 0 : __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 502, __pyx_L5_except_error)
9399 0 : __Pyx_GOTREF(__pyx_t_1);
9400 0 : __pyx_r = __pyx_t_1;
9401 0 : __pyx_t_1 = 0;
9402 0 : goto __pyx_L6_except_return;
9403 :
9404 : /* "View.MemoryView":501
9405 : * raise ValueError, "Unable to convert item to object"
9406 : * else:
9407 : * if len(self.view.format) == 1: # <<<<<<<<<<<<<<
9408 : * return result[0]
9409 : * return result
9410 : */
9411 : }
9412 :
9413 : /* "View.MemoryView":503
9414 : * if len(self.view.format) == 1:
9415 : * return result[0]
9416 : * return result # <<<<<<<<<<<<<<
9417 : *
9418 : * cdef assign_item_from_object(self, char *itemp, object value):
9419 : */
9420 0 : __Pyx_XDECREF(__pyx_r);
9421 0 : __Pyx_INCREF(__pyx_v_result);
9422 0 : __pyx_r = __pyx_v_result;
9423 0 : goto __pyx_L6_except_return;
9424 : }
9425 0 : __pyx_L3_error:;
9426 0 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
9427 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
9428 0 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
9429 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
9430 :
9431 : /* "View.MemoryView":498
9432 : * try:
9433 : * result = struct.unpack(self.view.format, bytesitem)
9434 : * except struct.error: # <<<<<<<<<<<<<<
9435 : * raise ValueError, "Unable to convert item to object"
9436 : * else:
9437 : */
9438 0 : __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_6);
9439 0 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 498, __pyx_L5_except_error)
9440 0 : __Pyx_GOTREF(__pyx_t_7);
9441 0 : __pyx_t_11 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_7);
9442 0 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
9443 0 : __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_6);
9444 0 : __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0;
9445 0 : if (__pyx_t_11) {
9446 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
9447 0 : if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(1, 498, __pyx_L5_except_error)
9448 0 : __Pyx_XGOTREF(__pyx_t_6);
9449 0 : __Pyx_XGOTREF(__pyx_t_5);
9450 0 : __Pyx_XGOTREF(__pyx_t_1);
9451 :
9452 : /* "View.MemoryView":499
9453 : * result = struct.unpack(self.view.format, bytesitem)
9454 : * except struct.error:
9455 : * raise ValueError, "Unable to convert item to object" # <<<<<<<<<<<<<<
9456 : * else:
9457 : * if len(self.view.format) == 1:
9458 : */
9459 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Unable_to_convert_item_to_object, 0, 0);
9460 0 : __PYX_ERR(1, 499, __pyx_L5_except_error)
9461 : }
9462 0 : goto __pyx_L5_except_error;
9463 :
9464 : /* "View.MemoryView":496
9465 : *
9466 : * bytesitem = itemp[:self.view.itemsize]
9467 : * try: # <<<<<<<<<<<<<<
9468 : * result = struct.unpack(self.view.format, bytesitem)
9469 : * except struct.error:
9470 : */
9471 0 : __pyx_L5_except_error:;
9472 0 : __Pyx_XGIVEREF(__pyx_t_2);
9473 0 : __Pyx_XGIVEREF(__pyx_t_3);
9474 0 : __Pyx_XGIVEREF(__pyx_t_4);
9475 0 : __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9476 0 : goto __pyx_L1_error;
9477 0 : __pyx_L6_except_return:;
9478 0 : __Pyx_XGIVEREF(__pyx_t_2);
9479 0 : __Pyx_XGIVEREF(__pyx_t_3);
9480 0 : __Pyx_XGIVEREF(__pyx_t_4);
9481 0 : __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
9482 0 : goto __pyx_L0;
9483 : }
9484 :
9485 : /* "View.MemoryView":489
9486 : * self.assign_item_from_object(itemp, value)
9487 : *
9488 : * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
9489 : * """Only used if instantiated manually by the user, or if Cython doesn't
9490 : * know how to convert the type"""
9491 : */
9492 :
9493 : /* function exit code */
9494 0 : __pyx_L1_error:;
9495 0 : __Pyx_XDECREF(__pyx_t_1);
9496 0 : __Pyx_XDECREF(__pyx_t_5);
9497 0 : __Pyx_XDECREF(__pyx_t_6);
9498 0 : __Pyx_XDECREF(__pyx_t_7);
9499 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
9500 0 : __pyx_r = 0;
9501 0 : __pyx_L0:;
9502 0 : __Pyx_XDECREF(__pyx_v_struct);
9503 0 : __Pyx_XDECREF(__pyx_v_bytesitem);
9504 0 : __Pyx_XDECREF(__pyx_v_result);
9505 0 : __Pyx_XGIVEREF(__pyx_r);
9506 0 : __Pyx_RefNannyFinishContext();
9507 0 : return __pyx_r;
9508 : }
9509 :
9510 : /* "View.MemoryView":505
9511 : * return result
9512 : *
9513 : * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
9514 : * """Only used if instantiated manually by the user, or if Cython doesn't
9515 : * know how to convert the type"""
9516 : */
9517 :
9518 0 : static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
9519 0 : PyObject *__pyx_v_struct = NULL;
9520 0 : char __pyx_v_c;
9521 0 : PyObject *__pyx_v_bytesvalue = 0;
9522 0 : Py_ssize_t __pyx_v_i;
9523 0 : PyObject *__pyx_r = NULL;
9524 : __Pyx_RefNannyDeclarations
9525 0 : PyObject *__pyx_t_1 = NULL;
9526 0 : int __pyx_t_2;
9527 0 : PyObject *__pyx_t_3 = NULL;
9528 0 : PyObject *__pyx_t_4 = NULL;
9529 0 : PyObject *__pyx_t_5 = NULL;
9530 0 : unsigned int __pyx_t_6;
9531 0 : Py_ssize_t __pyx_t_7;
9532 0 : PyObject *__pyx_t_8 = NULL;
9533 0 : char *__pyx_t_9;
9534 0 : char *__pyx_t_10;
9535 0 : char *__pyx_t_11;
9536 0 : char *__pyx_t_12;
9537 0 : int __pyx_lineno = 0;
9538 0 : const char *__pyx_filename = NULL;
9539 0 : int __pyx_clineno = 0;
9540 0 : __Pyx_RefNannySetupContext("assign_item_from_object", 1);
9541 :
9542 : /* "View.MemoryView":508
9543 : * """Only used if instantiated manually by the user, or if Cython doesn't
9544 : * know how to convert the type"""
9545 : * import struct # <<<<<<<<<<<<<<
9546 : * cdef char c
9547 : * cdef bytes bytesvalue
9548 : */
9549 0 : __pyx_t_1 = __Pyx_ImportDottedModule(__pyx_n_s_struct, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 508, __pyx_L1_error)
9550 0 : __Pyx_GOTREF(__pyx_t_1);
9551 0 : __pyx_v_struct = __pyx_t_1;
9552 0 : __pyx_t_1 = 0;
9553 :
9554 : /* "View.MemoryView":513
9555 : * cdef Py_ssize_t i
9556 : *
9557 : * if isinstance(value, tuple): # <<<<<<<<<<<<<<
9558 : * bytesvalue = struct.pack(self.view.format, *value)
9559 : * else:
9560 : */
9561 0 : __pyx_t_2 = PyTuple_Check(__pyx_v_value);
9562 0 : if (__pyx_t_2) {
9563 :
9564 : /* "View.MemoryView":514
9565 : *
9566 : * if isinstance(value, tuple):
9567 : * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<<
9568 : * else:
9569 : * bytesvalue = struct.pack(self.view.format, value)
9570 : */
9571 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 514, __pyx_L1_error)
9572 0 : __Pyx_GOTREF(__pyx_t_1);
9573 0 : __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
9574 0 : __Pyx_GOTREF(__pyx_t_3);
9575 0 : __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 514, __pyx_L1_error)
9576 0 : __Pyx_GOTREF(__pyx_t_4);
9577 0 : __Pyx_GIVEREF(__pyx_t_3);
9578 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error);
9579 0 : __pyx_t_3 = 0;
9580 0 : __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
9581 0 : __Pyx_GOTREF(__pyx_t_3);
9582 0 : __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 514, __pyx_L1_error)
9583 0 : __Pyx_GOTREF(__pyx_t_5);
9584 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
9585 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
9586 0 : __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error)
9587 0 : __Pyx_GOTREF(__pyx_t_3);
9588 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9589 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9590 0 : if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(1, 514, __pyx_L1_error)
9591 0 : __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
9592 0 : __pyx_t_3 = 0;
9593 :
9594 : /* "View.MemoryView":513
9595 : * cdef Py_ssize_t i
9596 : *
9597 : * if isinstance(value, tuple): # <<<<<<<<<<<<<<
9598 : * bytesvalue = struct.pack(self.view.format, *value)
9599 : * else:
9600 : */
9601 0 : goto __pyx_L3;
9602 : }
9603 :
9604 : /* "View.MemoryView":516
9605 : * bytesvalue = struct.pack(self.view.format, *value)
9606 : * else:
9607 : * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<<
9608 : *
9609 : * for i, c in enumerate(bytesvalue):
9610 : */
9611 : /*else*/ {
9612 0 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 516, __pyx_L1_error)
9613 0 : __Pyx_GOTREF(__pyx_t_5);
9614 0 : __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 516, __pyx_L1_error)
9615 0 : __Pyx_GOTREF(__pyx_t_1);
9616 0 : __pyx_t_4 = NULL;
9617 0 : __pyx_t_6 = 0;
9618 : #if CYTHON_UNPACK_METHODS
9619 0 : if (likely(PyMethod_Check(__pyx_t_5))) {
9620 0 : __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
9621 0 : if (likely(__pyx_t_4)) {
9622 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
9623 0 : __Pyx_INCREF(__pyx_t_4);
9624 0 : __Pyx_INCREF(function);
9625 0 : __Pyx_DECREF_SET(__pyx_t_5, function);
9626 : __pyx_t_6 = 1;
9627 : }
9628 : }
9629 : #endif
9630 : {
9631 0 : PyObject *__pyx_callargs[3] = {__pyx_t_4, __pyx_t_1, __pyx_v_value};
9632 0 : __pyx_t_3 = __Pyx_PyObject_FastCall(__pyx_t_5, __pyx_callargs+1-__pyx_t_6, 2+__pyx_t_6);
9633 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
9634 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
9635 0 : if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 516, __pyx_L1_error)
9636 0 : __Pyx_GOTREF(__pyx_t_3);
9637 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
9638 : }
9639 0 : if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None) || __Pyx_RaiseUnexpectedTypeError("bytes", __pyx_t_3))) __PYX_ERR(1, 516, __pyx_L1_error)
9640 : __pyx_v_bytesvalue = ((PyObject*)__pyx_t_3);
9641 : __pyx_t_3 = 0;
9642 : }
9643 0 : __pyx_L3:;
9644 :
9645 : /* "View.MemoryView":518
9646 : * bytesvalue = struct.pack(self.view.format, value)
9647 : *
9648 : * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<<
9649 : * itemp[i] = c
9650 : *
9651 : */
9652 0 : __pyx_t_7 = 0;
9653 0 : if (unlikely(__pyx_v_bytesvalue == Py_None)) {
9654 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable");
9655 0 : __PYX_ERR(1, 518, __pyx_L1_error)
9656 : }
9657 0 : __Pyx_INCREF(__pyx_v_bytesvalue);
9658 0 : __pyx_t_8 = __pyx_v_bytesvalue;
9659 0 : __pyx_t_10 = PyBytes_AS_STRING(__pyx_t_8);
9660 0 : __pyx_t_11 = (__pyx_t_10 + PyBytes_GET_SIZE(__pyx_t_8));
9661 0 : for (__pyx_t_12 = __pyx_t_10; __pyx_t_12 < __pyx_t_11; __pyx_t_12++) {
9662 0 : __pyx_t_9 = __pyx_t_12;
9663 0 : __pyx_v_c = (__pyx_t_9[0]);
9664 :
9665 : /* "View.MemoryView":519
9666 : *
9667 : * for i, c in enumerate(bytesvalue):
9668 : * itemp[i] = c # <<<<<<<<<<<<<<
9669 : *
9670 : * @cname('getbuffer')
9671 : */
9672 0 : __pyx_v_i = __pyx_t_7;
9673 :
9674 : /* "View.MemoryView":518
9675 : * bytesvalue = struct.pack(self.view.format, value)
9676 : *
9677 : * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<<
9678 : * itemp[i] = c
9679 : *
9680 : */
9681 0 : __pyx_t_7 = (__pyx_t_7 + 1);
9682 :
9683 : /* "View.MemoryView":519
9684 : *
9685 : * for i, c in enumerate(bytesvalue):
9686 : * itemp[i] = c # <<<<<<<<<<<<<<
9687 : *
9688 : * @cname('getbuffer')
9689 : */
9690 0 : (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c;
9691 : }
9692 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
9693 :
9694 : /* "View.MemoryView":505
9695 : * return result
9696 : *
9697 : * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
9698 : * """Only used if instantiated manually by the user, or if Cython doesn't
9699 : * know how to convert the type"""
9700 : */
9701 :
9702 : /* function exit code */
9703 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
9704 0 : goto __pyx_L0;
9705 0 : __pyx_L1_error:;
9706 0 : __Pyx_XDECREF(__pyx_t_1);
9707 0 : __Pyx_XDECREF(__pyx_t_3);
9708 0 : __Pyx_XDECREF(__pyx_t_4);
9709 0 : __Pyx_XDECREF(__pyx_t_5);
9710 0 : __Pyx_XDECREF(__pyx_t_8);
9711 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
9712 0 : __pyx_r = 0;
9713 0 : __pyx_L0:;
9714 0 : __Pyx_XDECREF(__pyx_v_struct);
9715 0 : __Pyx_XDECREF(__pyx_v_bytesvalue);
9716 0 : __Pyx_XGIVEREF(__pyx_r);
9717 0 : __Pyx_RefNannyFinishContext();
9718 0 : return __pyx_r;
9719 : }
9720 :
9721 : /* "View.MemoryView":521
9722 : * itemp[i] = c
9723 : *
9724 : * @cname('getbuffer') # <<<<<<<<<<<<<<
9725 : * def __getbuffer__(self, Py_buffer *info, int flags):
9726 : * if flags & PyBUF_WRITABLE and self.view.readonly:
9727 : */
9728 :
9729 : /* Python wrapper */
9730 : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/
9731 0 : CYTHON_UNUSED static int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
9732 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
9733 0 : int __pyx_r;
9734 : __Pyx_RefNannyDeclarations
9735 0 : __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0);
9736 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
9737 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags));
9738 :
9739 : /* function exit code */
9740 0 : __Pyx_RefNannyFinishContext();
9741 0 : return __pyx_r;
9742 : }
9743 :
9744 0 : static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) {
9745 0 : int __pyx_r;
9746 : __Pyx_RefNannyDeclarations
9747 0 : int __pyx_t_1;
9748 0 : int __pyx_t_2;
9749 0 : Py_ssize_t *__pyx_t_3;
9750 0 : char *__pyx_t_4;
9751 0 : void *__pyx_t_5;
9752 0 : int __pyx_t_6;
9753 0 : Py_ssize_t __pyx_t_7;
9754 0 : int __pyx_lineno = 0;
9755 0 : const char *__pyx_filename = NULL;
9756 0 : int __pyx_clineno = 0;
9757 0 : if (unlikely(__pyx_v_info == NULL)) {
9758 0 : PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete");
9759 0 : return -1;
9760 : }
9761 0 : __Pyx_RefNannySetupContext("__getbuffer__", 0);
9762 0 : __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None);
9763 0 : __Pyx_GIVEREF(__pyx_v_info->obj);
9764 :
9765 : /* "View.MemoryView":523
9766 : * @cname('getbuffer')
9767 : * def __getbuffer__(self, Py_buffer *info, int flags):
9768 : * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<<
9769 : * raise ValueError, "Cannot create writable memory view from read-only memoryview"
9770 : *
9771 : */
9772 0 : __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
9773 0 : if (__pyx_t_2) {
9774 0 : } else {
9775 0 : __pyx_t_1 = __pyx_t_2;
9776 0 : goto __pyx_L4_bool_binop_done;
9777 : }
9778 0 : __pyx_t_1 = __pyx_v_self->view.readonly;
9779 0 : __pyx_L4_bool_binop_done:;
9780 0 : if (unlikely(__pyx_t_1)) {
9781 :
9782 : /* "View.MemoryView":524
9783 : * def __getbuffer__(self, Py_buffer *info, int flags):
9784 : * if flags & PyBUF_WRITABLE and self.view.readonly:
9785 : * raise ValueError, "Cannot create writable memory view from read-only memoryview" # <<<<<<<<<<<<<<
9786 : *
9787 : * if flags & PyBUF_ND:
9788 : */
9789 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Cannot_create_writable_memory_vi, 0, 0);
9790 0 : __PYX_ERR(1, 524, __pyx_L1_error)
9791 :
9792 : /* "View.MemoryView":523
9793 : * @cname('getbuffer')
9794 : * def __getbuffer__(self, Py_buffer *info, int flags):
9795 : * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<<
9796 : * raise ValueError, "Cannot create writable memory view from read-only memoryview"
9797 : *
9798 : */
9799 : }
9800 :
9801 : /* "View.MemoryView":526
9802 : * raise ValueError, "Cannot create writable memory view from read-only memoryview"
9803 : *
9804 : * if flags & PyBUF_ND: # <<<<<<<<<<<<<<
9805 : * info.shape = self.view.shape
9806 : * else:
9807 : */
9808 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0);
9809 0 : if (__pyx_t_1) {
9810 :
9811 : /* "View.MemoryView":527
9812 : *
9813 : * if flags & PyBUF_ND:
9814 : * info.shape = self.view.shape # <<<<<<<<<<<<<<
9815 : * else:
9816 : * info.shape = NULL
9817 : */
9818 0 : __pyx_t_3 = __pyx_v_self->view.shape;
9819 0 : __pyx_v_info->shape = __pyx_t_3;
9820 :
9821 : /* "View.MemoryView":526
9822 : * raise ValueError, "Cannot create writable memory view from read-only memoryview"
9823 : *
9824 : * if flags & PyBUF_ND: # <<<<<<<<<<<<<<
9825 : * info.shape = self.view.shape
9826 : * else:
9827 : */
9828 0 : goto __pyx_L6;
9829 : }
9830 :
9831 : /* "View.MemoryView":529
9832 : * info.shape = self.view.shape
9833 : * else:
9834 : * info.shape = NULL # <<<<<<<<<<<<<<
9835 : *
9836 : * if flags & PyBUF_STRIDES:
9837 : */
9838 : /*else*/ {
9839 0 : __pyx_v_info->shape = NULL;
9840 : }
9841 0 : __pyx_L6:;
9842 :
9843 : /* "View.MemoryView":531
9844 : * info.shape = NULL
9845 : *
9846 : * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
9847 : * info.strides = self.view.strides
9848 : * else:
9849 : */
9850 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0);
9851 0 : if (__pyx_t_1) {
9852 :
9853 : /* "View.MemoryView":532
9854 : *
9855 : * if flags & PyBUF_STRIDES:
9856 : * info.strides = self.view.strides # <<<<<<<<<<<<<<
9857 : * else:
9858 : * info.strides = NULL
9859 : */
9860 0 : __pyx_t_3 = __pyx_v_self->view.strides;
9861 0 : __pyx_v_info->strides = __pyx_t_3;
9862 :
9863 : /* "View.MemoryView":531
9864 : * info.shape = NULL
9865 : *
9866 : * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<<
9867 : * info.strides = self.view.strides
9868 : * else:
9869 : */
9870 0 : goto __pyx_L7;
9871 : }
9872 :
9873 : /* "View.MemoryView":534
9874 : * info.strides = self.view.strides
9875 : * else:
9876 : * info.strides = NULL # <<<<<<<<<<<<<<
9877 : *
9878 : * if flags & PyBUF_INDIRECT:
9879 : */
9880 : /*else*/ {
9881 0 : __pyx_v_info->strides = NULL;
9882 : }
9883 0 : __pyx_L7:;
9884 :
9885 : /* "View.MemoryView":536
9886 : * info.strides = NULL
9887 : *
9888 : * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<<
9889 : * info.suboffsets = self.view.suboffsets
9890 : * else:
9891 : */
9892 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0);
9893 0 : if (__pyx_t_1) {
9894 :
9895 : /* "View.MemoryView":537
9896 : *
9897 : * if flags & PyBUF_INDIRECT:
9898 : * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<<
9899 : * else:
9900 : * info.suboffsets = NULL
9901 : */
9902 0 : __pyx_t_3 = __pyx_v_self->view.suboffsets;
9903 0 : __pyx_v_info->suboffsets = __pyx_t_3;
9904 :
9905 : /* "View.MemoryView":536
9906 : * info.strides = NULL
9907 : *
9908 : * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<<
9909 : * info.suboffsets = self.view.suboffsets
9910 : * else:
9911 : */
9912 0 : goto __pyx_L8;
9913 : }
9914 :
9915 : /* "View.MemoryView":539
9916 : * info.suboffsets = self.view.suboffsets
9917 : * else:
9918 : * info.suboffsets = NULL # <<<<<<<<<<<<<<
9919 : *
9920 : * if flags & PyBUF_FORMAT:
9921 : */
9922 : /*else*/ {
9923 0 : __pyx_v_info->suboffsets = NULL;
9924 : }
9925 0 : __pyx_L8:;
9926 :
9927 : /* "View.MemoryView":541
9928 : * info.suboffsets = NULL
9929 : *
9930 : * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
9931 : * info.format = self.view.format
9932 : * else:
9933 : */
9934 0 : __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
9935 0 : if (__pyx_t_1) {
9936 :
9937 : /* "View.MemoryView":542
9938 : *
9939 : * if flags & PyBUF_FORMAT:
9940 : * info.format = self.view.format # <<<<<<<<<<<<<<
9941 : * else:
9942 : * info.format = NULL
9943 : */
9944 0 : __pyx_t_4 = __pyx_v_self->view.format;
9945 0 : __pyx_v_info->format = __pyx_t_4;
9946 :
9947 : /* "View.MemoryView":541
9948 : * info.suboffsets = NULL
9949 : *
9950 : * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<<
9951 : * info.format = self.view.format
9952 : * else:
9953 : */
9954 0 : goto __pyx_L9;
9955 : }
9956 :
9957 : /* "View.MemoryView":544
9958 : * info.format = self.view.format
9959 : * else:
9960 : * info.format = NULL # <<<<<<<<<<<<<<
9961 : *
9962 : * info.buf = self.view.buf
9963 : */
9964 : /*else*/ {
9965 0 : __pyx_v_info->format = NULL;
9966 : }
9967 0 : __pyx_L9:;
9968 :
9969 : /* "View.MemoryView":546
9970 : * info.format = NULL
9971 : *
9972 : * info.buf = self.view.buf # <<<<<<<<<<<<<<
9973 : * info.ndim = self.view.ndim
9974 : * info.itemsize = self.view.itemsize
9975 : */
9976 0 : __pyx_t_5 = __pyx_v_self->view.buf;
9977 0 : __pyx_v_info->buf = __pyx_t_5;
9978 :
9979 : /* "View.MemoryView":547
9980 : *
9981 : * info.buf = self.view.buf
9982 : * info.ndim = self.view.ndim # <<<<<<<<<<<<<<
9983 : * info.itemsize = self.view.itemsize
9984 : * info.len = self.view.len
9985 : */
9986 0 : __pyx_t_6 = __pyx_v_self->view.ndim;
9987 0 : __pyx_v_info->ndim = __pyx_t_6;
9988 :
9989 : /* "View.MemoryView":548
9990 : * info.buf = self.view.buf
9991 : * info.ndim = self.view.ndim
9992 : * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<<
9993 : * info.len = self.view.len
9994 : * info.readonly = self.view.readonly
9995 : */
9996 0 : __pyx_t_7 = __pyx_v_self->view.itemsize;
9997 0 : __pyx_v_info->itemsize = __pyx_t_7;
9998 :
9999 : /* "View.MemoryView":549
10000 : * info.ndim = self.view.ndim
10001 : * info.itemsize = self.view.itemsize
10002 : * info.len = self.view.len # <<<<<<<<<<<<<<
10003 : * info.readonly = self.view.readonly
10004 : * info.obj = self
10005 : */
10006 0 : __pyx_t_7 = __pyx_v_self->view.len;
10007 0 : __pyx_v_info->len = __pyx_t_7;
10008 :
10009 : /* "View.MemoryView":550
10010 : * info.itemsize = self.view.itemsize
10011 : * info.len = self.view.len
10012 : * info.readonly = self.view.readonly # <<<<<<<<<<<<<<
10013 : * info.obj = self
10014 : *
10015 : */
10016 0 : __pyx_t_1 = __pyx_v_self->view.readonly;
10017 0 : __pyx_v_info->readonly = __pyx_t_1;
10018 :
10019 : /* "View.MemoryView":551
10020 : * info.len = self.view.len
10021 : * info.readonly = self.view.readonly
10022 : * info.obj = self # <<<<<<<<<<<<<<
10023 : *
10024 : *
10025 : */
10026 0 : __Pyx_INCREF((PyObject *)__pyx_v_self);
10027 0 : __Pyx_GIVEREF((PyObject *)__pyx_v_self);
10028 0 : __Pyx_GOTREF(__pyx_v_info->obj);
10029 0 : __Pyx_DECREF(__pyx_v_info->obj);
10030 0 : __pyx_v_info->obj = ((PyObject *)__pyx_v_self);
10031 :
10032 : /* "View.MemoryView":521
10033 : * itemp[i] = c
10034 : *
10035 : * @cname('getbuffer') # <<<<<<<<<<<<<<
10036 : * def __getbuffer__(self, Py_buffer *info, int flags):
10037 : * if flags & PyBUF_WRITABLE and self.view.readonly:
10038 : */
10039 :
10040 : /* function exit code */
10041 0 : __pyx_r = 0;
10042 0 : goto __pyx_L0;
10043 0 : __pyx_L1_error:;
10044 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10045 0 : __pyx_r = -1;
10046 0 : if (__pyx_v_info->obj != NULL) {
10047 0 : __Pyx_GOTREF(__pyx_v_info->obj);
10048 0 : __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
10049 : }
10050 0 : goto __pyx_L2;
10051 0 : __pyx_L0:;
10052 0 : if (__pyx_v_info->obj == Py_None) {
10053 0 : __Pyx_GOTREF(__pyx_v_info->obj);
10054 0 : __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0;
10055 : }
10056 0 : __pyx_L2:;
10057 : __Pyx_RefNannyFinishContext();
10058 : return __pyx_r;
10059 : }
10060 :
10061 : /* "View.MemoryView":554
10062 : *
10063 : *
10064 : * @property # <<<<<<<<<<<<<<
10065 : * def T(self):
10066 : * cdef _memoryviewslice result = memoryview_copy(self)
10067 : */
10068 :
10069 : /* Python wrapper */
10070 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/
10071 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) {
10072 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10073 0 : PyObject *__pyx_r = 0;
10074 : __Pyx_RefNannyDeclarations
10075 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10076 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10077 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10078 :
10079 : /* function exit code */
10080 0 : __Pyx_RefNannyFinishContext();
10081 0 : return __pyx_r;
10082 : }
10083 :
10084 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10085 0 : struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
10086 0 : PyObject *__pyx_r = NULL;
10087 : __Pyx_RefNannyDeclarations
10088 0 : PyObject *__pyx_t_1 = NULL;
10089 0 : int __pyx_t_2;
10090 0 : int __pyx_lineno = 0;
10091 0 : const char *__pyx_filename = NULL;
10092 0 : int __pyx_clineno = 0;
10093 0 : __Pyx_RefNannySetupContext("__get__", 1);
10094 :
10095 : /* "View.MemoryView":556
10096 : * @property
10097 : * def T(self):
10098 : * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<<
10099 : * transpose_memslice(&result.from_slice)
10100 : * return result
10101 : */
10102 0 : __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 556, __pyx_L1_error)
10103 0 : __Pyx_GOTREF(__pyx_t_1);
10104 0 : if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(1, 556, __pyx_L1_error)
10105 0 : __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1);
10106 0 : __pyx_t_1 = 0;
10107 :
10108 : /* "View.MemoryView":557
10109 : * def T(self):
10110 : * cdef _memoryviewslice result = memoryview_copy(self)
10111 : * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<<
10112 : * return result
10113 : *
10114 : */
10115 0 : __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 557, __pyx_L1_error)
10116 :
10117 : /* "View.MemoryView":558
10118 : * cdef _memoryviewslice result = memoryview_copy(self)
10119 : * transpose_memslice(&result.from_slice)
10120 : * return result # <<<<<<<<<<<<<<
10121 : *
10122 : * @property
10123 : */
10124 0 : __Pyx_XDECREF(__pyx_r);
10125 0 : __Pyx_INCREF((PyObject *)__pyx_v_result);
10126 0 : __pyx_r = ((PyObject *)__pyx_v_result);
10127 0 : goto __pyx_L0;
10128 :
10129 : /* "View.MemoryView":554
10130 : *
10131 : *
10132 : * @property # <<<<<<<<<<<<<<
10133 : * def T(self):
10134 : * cdef _memoryviewslice result = memoryview_copy(self)
10135 : */
10136 :
10137 : /* function exit code */
10138 0 : __pyx_L1_error:;
10139 0 : __Pyx_XDECREF(__pyx_t_1);
10140 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10141 0 : __pyx_r = NULL;
10142 0 : __pyx_L0:;
10143 0 : __Pyx_XDECREF((PyObject *)__pyx_v_result);
10144 0 : __Pyx_XGIVEREF(__pyx_r);
10145 0 : __Pyx_RefNannyFinishContext();
10146 0 : return __pyx_r;
10147 : }
10148 :
10149 : /* "View.MemoryView":560
10150 : * return result
10151 : *
10152 : * @property # <<<<<<<<<<<<<<
10153 : * def base(self):
10154 : * return self._get_base()
10155 : */
10156 :
10157 : /* Python wrapper */
10158 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/
10159 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) {
10160 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10161 0 : PyObject *__pyx_r = 0;
10162 : __Pyx_RefNannyDeclarations
10163 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10164 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10165 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10166 :
10167 : /* function exit code */
10168 0 : __Pyx_RefNannyFinishContext();
10169 0 : return __pyx_r;
10170 : }
10171 :
10172 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10173 0 : PyObject *__pyx_r = NULL;
10174 : __Pyx_RefNannyDeclarations
10175 0 : PyObject *__pyx_t_1 = NULL;
10176 0 : int __pyx_lineno = 0;
10177 0 : const char *__pyx_filename = NULL;
10178 0 : int __pyx_clineno = 0;
10179 0 : __Pyx_RefNannySetupContext("__get__", 1);
10180 :
10181 : /* "View.MemoryView":562
10182 : * @property
10183 : * def base(self):
10184 : * return self._get_base() # <<<<<<<<<<<<<<
10185 : *
10186 : * cdef _get_base(self):
10187 : */
10188 0 : __Pyx_XDECREF(__pyx_r);
10189 0 : __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->_get_base(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 562, __pyx_L1_error)
10190 0 : __Pyx_GOTREF(__pyx_t_1);
10191 0 : __pyx_r = __pyx_t_1;
10192 0 : __pyx_t_1 = 0;
10193 0 : goto __pyx_L0;
10194 :
10195 : /* "View.MemoryView":560
10196 : * return result
10197 : *
10198 : * @property # <<<<<<<<<<<<<<
10199 : * def base(self):
10200 : * return self._get_base()
10201 : */
10202 :
10203 : /* function exit code */
10204 0 : __pyx_L1_error:;
10205 0 : __Pyx_XDECREF(__pyx_t_1);
10206 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.base.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10207 0 : __pyx_r = NULL;
10208 0 : __pyx_L0:;
10209 0 : __Pyx_XGIVEREF(__pyx_r);
10210 0 : __Pyx_RefNannyFinishContext();
10211 0 : return __pyx_r;
10212 : }
10213 :
10214 : /* "View.MemoryView":564
10215 : * return self._get_base()
10216 : *
10217 : * cdef _get_base(self): # <<<<<<<<<<<<<<
10218 : * return self.obj
10219 : *
10220 : */
10221 :
10222 3 : static PyObject *__pyx_memoryview__get_base(struct __pyx_memoryview_obj *__pyx_v_self) {
10223 3 : PyObject *__pyx_r = NULL;
10224 : __Pyx_RefNannyDeclarations
10225 3 : __Pyx_RefNannySetupContext("_get_base", 1);
10226 :
10227 : /* "View.MemoryView":565
10228 : *
10229 : * cdef _get_base(self):
10230 : * return self.obj # <<<<<<<<<<<<<<
10231 : *
10232 : * @property
10233 : */
10234 3 : __Pyx_XDECREF(__pyx_r);
10235 3 : __Pyx_INCREF(__pyx_v_self->obj);
10236 3 : __pyx_r = __pyx_v_self->obj;
10237 3 : goto __pyx_L0;
10238 :
10239 : /* "View.MemoryView":564
10240 : * return self._get_base()
10241 : *
10242 : * cdef _get_base(self): # <<<<<<<<<<<<<<
10243 : * return self.obj
10244 : *
10245 : */
10246 :
10247 : /* function exit code */
10248 3 : __pyx_L0:;
10249 3 : __Pyx_XGIVEREF(__pyx_r);
10250 3 : __Pyx_RefNannyFinishContext();
10251 3 : return __pyx_r;
10252 : }
10253 :
10254 : /* "View.MemoryView":567
10255 : * return self.obj
10256 : *
10257 : * @property # <<<<<<<<<<<<<<
10258 : * def shape(self):
10259 : * return tuple([length for length in self.view.shape[:self.view.ndim]])
10260 : */
10261 :
10262 : /* Python wrapper */
10263 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/
10264 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) {
10265 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10266 0 : PyObject *__pyx_r = 0;
10267 : __Pyx_RefNannyDeclarations
10268 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10269 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10270 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10271 :
10272 : /* function exit code */
10273 0 : __Pyx_RefNannyFinishContext();
10274 0 : return __pyx_r;
10275 : }
10276 :
10277 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10278 0 : Py_ssize_t __pyx_7genexpr__pyx_v_length;
10279 0 : PyObject *__pyx_r = NULL;
10280 : __Pyx_RefNannyDeclarations
10281 0 : PyObject *__pyx_t_1 = NULL;
10282 0 : Py_ssize_t *__pyx_t_2;
10283 0 : Py_ssize_t *__pyx_t_3;
10284 0 : Py_ssize_t *__pyx_t_4;
10285 0 : PyObject *__pyx_t_5 = NULL;
10286 0 : int __pyx_lineno = 0;
10287 0 : const char *__pyx_filename = NULL;
10288 0 : int __pyx_clineno = 0;
10289 0 : __Pyx_RefNannySetupContext("__get__", 1);
10290 :
10291 : /* "View.MemoryView":569
10292 : * @property
10293 : * def shape(self):
10294 : * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<<
10295 : *
10296 : * @property
10297 : */
10298 0 : __Pyx_XDECREF(__pyx_r);
10299 : { /* enter inner scope */
10300 0 : __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 569, __pyx_L1_error)
10301 0 : __Pyx_GOTREF(__pyx_t_1);
10302 0 : __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
10303 0 : for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
10304 0 : __pyx_t_2 = __pyx_t_4;
10305 0 : __pyx_7genexpr__pyx_v_length = (__pyx_t_2[0]);
10306 0 : __pyx_t_5 = PyInt_FromSsize_t(__pyx_7genexpr__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 569, __pyx_L1_error)
10307 0 : __Pyx_GOTREF(__pyx_t_5);
10308 0 : if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(1, 569, __pyx_L1_error)
10309 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
10310 : }
10311 : } /* exit inner scope */
10312 0 : __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 569, __pyx_L1_error)
10313 0 : __Pyx_GOTREF(__pyx_t_5);
10314 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10315 0 : __pyx_r = __pyx_t_5;
10316 0 : __pyx_t_5 = 0;
10317 0 : goto __pyx_L0;
10318 :
10319 : /* "View.MemoryView":567
10320 : * return self.obj
10321 : *
10322 : * @property # <<<<<<<<<<<<<<
10323 : * def shape(self):
10324 : * return tuple([length for length in self.view.shape[:self.view.ndim]])
10325 : */
10326 :
10327 : /* function exit code */
10328 0 : __pyx_L1_error:;
10329 0 : __Pyx_XDECREF(__pyx_t_1);
10330 0 : __Pyx_XDECREF(__pyx_t_5);
10331 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10332 0 : __pyx_r = NULL;
10333 0 : __pyx_L0:;
10334 0 : __Pyx_XGIVEREF(__pyx_r);
10335 0 : __Pyx_RefNannyFinishContext();
10336 0 : return __pyx_r;
10337 : }
10338 :
10339 : /* "View.MemoryView":571
10340 : * return tuple([length for length in self.view.shape[:self.view.ndim]])
10341 : *
10342 : * @property # <<<<<<<<<<<<<<
10343 : * def strides(self):
10344 : * if self.view.strides == NULL:
10345 : */
10346 :
10347 : /* Python wrapper */
10348 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/
10349 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) {
10350 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10351 0 : PyObject *__pyx_r = 0;
10352 : __Pyx_RefNannyDeclarations
10353 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10354 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10355 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10356 :
10357 : /* function exit code */
10358 0 : __Pyx_RefNannyFinishContext();
10359 0 : return __pyx_r;
10360 : }
10361 :
10362 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10363 0 : Py_ssize_t __pyx_8genexpr1__pyx_v_stride;
10364 0 : PyObject *__pyx_r = NULL;
10365 : __Pyx_RefNannyDeclarations
10366 0 : int __pyx_t_1;
10367 0 : PyObject *__pyx_t_2 = NULL;
10368 0 : Py_ssize_t *__pyx_t_3;
10369 0 : Py_ssize_t *__pyx_t_4;
10370 0 : Py_ssize_t *__pyx_t_5;
10371 0 : PyObject *__pyx_t_6 = NULL;
10372 0 : int __pyx_lineno = 0;
10373 0 : const char *__pyx_filename = NULL;
10374 0 : int __pyx_clineno = 0;
10375 0 : __Pyx_RefNannySetupContext("__get__", 1);
10376 :
10377 : /* "View.MemoryView":573
10378 : * @property
10379 : * def strides(self):
10380 : * if self.view.strides == NULL: # <<<<<<<<<<<<<<
10381 : *
10382 : * raise ValueError, "Buffer view does not expose strides"
10383 : */
10384 0 : __pyx_t_1 = (__pyx_v_self->view.strides == NULL);
10385 0 : if (unlikely(__pyx_t_1)) {
10386 :
10387 : /* "View.MemoryView":575
10388 : * if self.view.strides == NULL:
10389 : *
10390 : * raise ValueError, "Buffer view does not expose strides" # <<<<<<<<<<<<<<
10391 : *
10392 : * return tuple([stride for stride in self.view.strides[:self.view.ndim]])
10393 : */
10394 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Buffer_view_does_not_expose_stri, 0, 0);
10395 0 : __PYX_ERR(1, 575, __pyx_L1_error)
10396 :
10397 : /* "View.MemoryView":573
10398 : * @property
10399 : * def strides(self):
10400 : * if self.view.strides == NULL: # <<<<<<<<<<<<<<
10401 : *
10402 : * raise ValueError, "Buffer view does not expose strides"
10403 : */
10404 : }
10405 :
10406 : /* "View.MemoryView":577
10407 : * raise ValueError, "Buffer view does not expose strides"
10408 : *
10409 : * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<<
10410 : *
10411 : * @property
10412 : */
10413 0 : __Pyx_XDECREF(__pyx_r);
10414 : { /* enter inner scope */
10415 0 : __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error)
10416 0 : __Pyx_GOTREF(__pyx_t_2);
10417 0 : __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim);
10418 0 : for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
10419 0 : __pyx_t_3 = __pyx_t_5;
10420 0 : __pyx_8genexpr1__pyx_v_stride = (__pyx_t_3[0]);
10421 0 : __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr1__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 577, __pyx_L1_error)
10422 0 : __Pyx_GOTREF(__pyx_t_6);
10423 0 : if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 577, __pyx_L1_error)
10424 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
10425 : }
10426 : } /* exit inner scope */
10427 0 : __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 577, __pyx_L1_error)
10428 0 : __Pyx_GOTREF(__pyx_t_6);
10429 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10430 0 : __pyx_r = __pyx_t_6;
10431 0 : __pyx_t_6 = 0;
10432 0 : goto __pyx_L0;
10433 :
10434 : /* "View.MemoryView":571
10435 : * return tuple([length for length in self.view.shape[:self.view.ndim]])
10436 : *
10437 : * @property # <<<<<<<<<<<<<<
10438 : * def strides(self):
10439 : * if self.view.strides == NULL:
10440 : */
10441 :
10442 : /* function exit code */
10443 0 : __pyx_L1_error:;
10444 0 : __Pyx_XDECREF(__pyx_t_2);
10445 0 : __Pyx_XDECREF(__pyx_t_6);
10446 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10447 0 : __pyx_r = NULL;
10448 0 : __pyx_L0:;
10449 0 : __Pyx_XGIVEREF(__pyx_r);
10450 0 : __Pyx_RefNannyFinishContext();
10451 0 : return __pyx_r;
10452 : }
10453 :
10454 : /* "View.MemoryView":579
10455 : * return tuple([stride for stride in self.view.strides[:self.view.ndim]])
10456 : *
10457 : * @property # <<<<<<<<<<<<<<
10458 : * def suboffsets(self):
10459 : * if self.view.suboffsets == NULL:
10460 : */
10461 :
10462 : /* Python wrapper */
10463 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/
10464 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) {
10465 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10466 0 : PyObject *__pyx_r = 0;
10467 : __Pyx_RefNannyDeclarations
10468 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10469 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10470 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10471 :
10472 : /* function exit code */
10473 0 : __Pyx_RefNannyFinishContext();
10474 0 : return __pyx_r;
10475 : }
10476 :
10477 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10478 0 : Py_ssize_t __pyx_8genexpr2__pyx_v_suboffset;
10479 0 : PyObject *__pyx_r = NULL;
10480 : __Pyx_RefNannyDeclarations
10481 0 : int __pyx_t_1;
10482 0 : PyObject *__pyx_t_2 = NULL;
10483 0 : Py_ssize_t *__pyx_t_3;
10484 0 : Py_ssize_t *__pyx_t_4;
10485 0 : Py_ssize_t *__pyx_t_5;
10486 0 : PyObject *__pyx_t_6 = NULL;
10487 0 : int __pyx_lineno = 0;
10488 0 : const char *__pyx_filename = NULL;
10489 0 : int __pyx_clineno = 0;
10490 0 : __Pyx_RefNannySetupContext("__get__", 1);
10491 :
10492 : /* "View.MemoryView":581
10493 : * @property
10494 : * def suboffsets(self):
10495 : * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<<
10496 : * return (-1,) * self.view.ndim
10497 : *
10498 : */
10499 0 : __pyx_t_1 = (__pyx_v_self->view.suboffsets == NULL);
10500 0 : if (__pyx_t_1) {
10501 :
10502 : /* "View.MemoryView":582
10503 : * def suboffsets(self):
10504 : * if self.view.suboffsets == NULL:
10505 : * return (-1,) * self.view.ndim # <<<<<<<<<<<<<<
10506 : *
10507 : * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
10508 : */
10509 0 : __Pyx_XDECREF(__pyx_r);
10510 0 : __pyx_t_2 = __Pyx_PySequence_Multiply(__pyx_tuple__4, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 582, __pyx_L1_error)
10511 0 : __Pyx_GOTREF(__pyx_t_2);
10512 0 : __pyx_r = __pyx_t_2;
10513 0 : __pyx_t_2 = 0;
10514 0 : goto __pyx_L0;
10515 :
10516 : /* "View.MemoryView":581
10517 : * @property
10518 : * def suboffsets(self):
10519 : * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<<
10520 : * return (-1,) * self.view.ndim
10521 : *
10522 : */
10523 : }
10524 :
10525 : /* "View.MemoryView":584
10526 : * return (-1,) * self.view.ndim
10527 : *
10528 : * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<<
10529 : *
10530 : * @property
10531 : */
10532 0 : __Pyx_XDECREF(__pyx_r);
10533 : { /* enter inner scope */
10534 0 : __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 584, __pyx_L1_error)
10535 0 : __Pyx_GOTREF(__pyx_t_2);
10536 0 : __pyx_t_4 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim);
10537 0 : for (__pyx_t_5 = __pyx_v_self->view.suboffsets; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
10538 0 : __pyx_t_3 = __pyx_t_5;
10539 0 : __pyx_8genexpr2__pyx_v_suboffset = (__pyx_t_3[0]);
10540 0 : __pyx_t_6 = PyInt_FromSsize_t(__pyx_8genexpr2__pyx_v_suboffset); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 584, __pyx_L1_error)
10541 0 : __Pyx_GOTREF(__pyx_t_6);
10542 0 : if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(1, 584, __pyx_L1_error)
10543 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
10544 : }
10545 : } /* exit inner scope */
10546 0 : __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 584, __pyx_L1_error)
10547 0 : __Pyx_GOTREF(__pyx_t_6);
10548 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10549 0 : __pyx_r = __pyx_t_6;
10550 0 : __pyx_t_6 = 0;
10551 0 : goto __pyx_L0;
10552 :
10553 : /* "View.MemoryView":579
10554 : * return tuple([stride for stride in self.view.strides[:self.view.ndim]])
10555 : *
10556 : * @property # <<<<<<<<<<<<<<
10557 : * def suboffsets(self):
10558 : * if self.view.suboffsets == NULL:
10559 : */
10560 :
10561 : /* function exit code */
10562 0 : __pyx_L1_error:;
10563 0 : __Pyx_XDECREF(__pyx_t_2);
10564 0 : __Pyx_XDECREF(__pyx_t_6);
10565 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10566 0 : __pyx_r = NULL;
10567 0 : __pyx_L0:;
10568 0 : __Pyx_XGIVEREF(__pyx_r);
10569 0 : __Pyx_RefNannyFinishContext();
10570 0 : return __pyx_r;
10571 : }
10572 :
10573 : /* "View.MemoryView":586
10574 : * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
10575 : *
10576 : * @property # <<<<<<<<<<<<<<
10577 : * def ndim(self):
10578 : * return self.view.ndim
10579 : */
10580 :
10581 : /* Python wrapper */
10582 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/
10583 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) {
10584 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10585 0 : PyObject *__pyx_r = 0;
10586 : __Pyx_RefNannyDeclarations
10587 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10588 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10589 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10590 :
10591 : /* function exit code */
10592 0 : __Pyx_RefNannyFinishContext();
10593 0 : return __pyx_r;
10594 : }
10595 :
10596 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10597 0 : PyObject *__pyx_r = NULL;
10598 : __Pyx_RefNannyDeclarations
10599 0 : PyObject *__pyx_t_1 = NULL;
10600 0 : int __pyx_lineno = 0;
10601 0 : const char *__pyx_filename = NULL;
10602 0 : int __pyx_clineno = 0;
10603 0 : __Pyx_RefNannySetupContext("__get__", 1);
10604 :
10605 : /* "View.MemoryView":588
10606 : * @property
10607 : * def ndim(self):
10608 : * return self.view.ndim # <<<<<<<<<<<<<<
10609 : *
10610 : * @property
10611 : */
10612 0 : __Pyx_XDECREF(__pyx_r);
10613 0 : __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 588, __pyx_L1_error)
10614 0 : __Pyx_GOTREF(__pyx_t_1);
10615 0 : __pyx_r = __pyx_t_1;
10616 0 : __pyx_t_1 = 0;
10617 0 : goto __pyx_L0;
10618 :
10619 : /* "View.MemoryView":586
10620 : * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
10621 : *
10622 : * @property # <<<<<<<<<<<<<<
10623 : * def ndim(self):
10624 : * return self.view.ndim
10625 : */
10626 :
10627 : /* function exit code */
10628 0 : __pyx_L1_error:;
10629 0 : __Pyx_XDECREF(__pyx_t_1);
10630 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10631 0 : __pyx_r = NULL;
10632 0 : __pyx_L0:;
10633 0 : __Pyx_XGIVEREF(__pyx_r);
10634 0 : __Pyx_RefNannyFinishContext();
10635 0 : return __pyx_r;
10636 : }
10637 :
10638 : /* "View.MemoryView":590
10639 : * return self.view.ndim
10640 : *
10641 : * @property # <<<<<<<<<<<<<<
10642 : * def itemsize(self):
10643 : * return self.view.itemsize
10644 : */
10645 :
10646 : /* Python wrapper */
10647 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/
10648 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) {
10649 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10650 0 : PyObject *__pyx_r = 0;
10651 : __Pyx_RefNannyDeclarations
10652 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10653 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10654 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10655 :
10656 : /* function exit code */
10657 0 : __Pyx_RefNannyFinishContext();
10658 0 : return __pyx_r;
10659 : }
10660 :
10661 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10662 0 : PyObject *__pyx_r = NULL;
10663 : __Pyx_RefNannyDeclarations
10664 0 : PyObject *__pyx_t_1 = NULL;
10665 0 : int __pyx_lineno = 0;
10666 0 : const char *__pyx_filename = NULL;
10667 0 : int __pyx_clineno = 0;
10668 0 : __Pyx_RefNannySetupContext("__get__", 1);
10669 :
10670 : /* "View.MemoryView":592
10671 : * @property
10672 : * def itemsize(self):
10673 : * return self.view.itemsize # <<<<<<<<<<<<<<
10674 : *
10675 : * @property
10676 : */
10677 0 : __Pyx_XDECREF(__pyx_r);
10678 0 : __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 592, __pyx_L1_error)
10679 0 : __Pyx_GOTREF(__pyx_t_1);
10680 0 : __pyx_r = __pyx_t_1;
10681 0 : __pyx_t_1 = 0;
10682 0 : goto __pyx_L0;
10683 :
10684 : /* "View.MemoryView":590
10685 : * return self.view.ndim
10686 : *
10687 : * @property # <<<<<<<<<<<<<<
10688 : * def itemsize(self):
10689 : * return self.view.itemsize
10690 : */
10691 :
10692 : /* function exit code */
10693 0 : __pyx_L1_error:;
10694 0 : __Pyx_XDECREF(__pyx_t_1);
10695 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10696 0 : __pyx_r = NULL;
10697 0 : __pyx_L0:;
10698 0 : __Pyx_XGIVEREF(__pyx_r);
10699 0 : __Pyx_RefNannyFinishContext();
10700 0 : return __pyx_r;
10701 : }
10702 :
10703 : /* "View.MemoryView":594
10704 : * return self.view.itemsize
10705 : *
10706 : * @property # <<<<<<<<<<<<<<
10707 : * def nbytes(self):
10708 : * return self.size * self.view.itemsize
10709 : */
10710 :
10711 : /* Python wrapper */
10712 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/
10713 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) {
10714 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10715 0 : PyObject *__pyx_r = 0;
10716 : __Pyx_RefNannyDeclarations
10717 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10718 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10719 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10720 :
10721 : /* function exit code */
10722 0 : __Pyx_RefNannyFinishContext();
10723 0 : return __pyx_r;
10724 : }
10725 :
10726 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10727 0 : PyObject *__pyx_r = NULL;
10728 : __Pyx_RefNannyDeclarations
10729 0 : PyObject *__pyx_t_1 = NULL;
10730 0 : PyObject *__pyx_t_2 = NULL;
10731 0 : PyObject *__pyx_t_3 = NULL;
10732 0 : int __pyx_lineno = 0;
10733 0 : const char *__pyx_filename = NULL;
10734 0 : int __pyx_clineno = 0;
10735 0 : __Pyx_RefNannySetupContext("__get__", 1);
10736 :
10737 : /* "View.MemoryView":596
10738 : * @property
10739 : * def nbytes(self):
10740 : * return self.size * self.view.itemsize # <<<<<<<<<<<<<<
10741 : *
10742 : * @property
10743 : */
10744 0 : __Pyx_XDECREF(__pyx_r);
10745 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 596, __pyx_L1_error)
10746 0 : __Pyx_GOTREF(__pyx_t_1);
10747 0 : __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 596, __pyx_L1_error)
10748 0 : __Pyx_GOTREF(__pyx_t_2);
10749 0 : __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 596, __pyx_L1_error)
10750 0 : __Pyx_GOTREF(__pyx_t_3);
10751 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10752 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
10753 0 : __pyx_r = __pyx_t_3;
10754 0 : __pyx_t_3 = 0;
10755 0 : goto __pyx_L0;
10756 :
10757 : /* "View.MemoryView":594
10758 : * return self.view.itemsize
10759 : *
10760 : * @property # <<<<<<<<<<<<<<
10761 : * def nbytes(self):
10762 : * return self.size * self.view.itemsize
10763 : */
10764 :
10765 : /* function exit code */
10766 0 : __pyx_L1_error:;
10767 0 : __Pyx_XDECREF(__pyx_t_1);
10768 0 : __Pyx_XDECREF(__pyx_t_2);
10769 0 : __Pyx_XDECREF(__pyx_t_3);
10770 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10771 0 : __pyx_r = NULL;
10772 0 : __pyx_L0:;
10773 0 : __Pyx_XGIVEREF(__pyx_r);
10774 0 : __Pyx_RefNannyFinishContext();
10775 0 : return __pyx_r;
10776 : }
10777 :
10778 : /* "View.MemoryView":598
10779 : * return self.size * self.view.itemsize
10780 : *
10781 : * @property # <<<<<<<<<<<<<<
10782 : * def size(self):
10783 : * if self._size is None:
10784 : */
10785 :
10786 : /* Python wrapper */
10787 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/
10788 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) {
10789 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10790 0 : PyObject *__pyx_r = 0;
10791 : __Pyx_RefNannyDeclarations
10792 0 : __Pyx_RefNannySetupContext("__get__ (wrapper)", 0);
10793 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10794 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10795 :
10796 : /* function exit code */
10797 0 : __Pyx_RefNannyFinishContext();
10798 0 : return __pyx_r;
10799 : }
10800 :
10801 0 : static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) {
10802 0 : PyObject *__pyx_v_result = NULL;
10803 0 : PyObject *__pyx_v_length = NULL;
10804 0 : PyObject *__pyx_r = NULL;
10805 : __Pyx_RefNannyDeclarations
10806 0 : int __pyx_t_1;
10807 0 : Py_ssize_t *__pyx_t_2;
10808 0 : Py_ssize_t *__pyx_t_3;
10809 0 : Py_ssize_t *__pyx_t_4;
10810 0 : PyObject *__pyx_t_5 = NULL;
10811 0 : int __pyx_lineno = 0;
10812 0 : const char *__pyx_filename = NULL;
10813 0 : int __pyx_clineno = 0;
10814 0 : __Pyx_RefNannySetupContext("__get__", 1);
10815 :
10816 : /* "View.MemoryView":600
10817 : * @property
10818 : * def size(self):
10819 : * if self._size is None: # <<<<<<<<<<<<<<
10820 : * result = 1
10821 : *
10822 : */
10823 0 : __pyx_t_1 = (__pyx_v_self->_size == Py_None);
10824 0 : if (__pyx_t_1) {
10825 :
10826 : /* "View.MemoryView":601
10827 : * def size(self):
10828 : * if self._size is None:
10829 : * result = 1 # <<<<<<<<<<<<<<
10830 : *
10831 : * for length in self.view.shape[:self.view.ndim]:
10832 : */
10833 0 : __Pyx_INCREF(__pyx_int_1);
10834 0 : __pyx_v_result = __pyx_int_1;
10835 :
10836 : /* "View.MemoryView":603
10837 : * result = 1
10838 : *
10839 : * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<<
10840 : * result *= length
10841 : *
10842 : */
10843 0 : __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim);
10844 0 : for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
10845 0 : __pyx_t_2 = __pyx_t_4;
10846 0 : __pyx_t_5 = PyInt_FromSsize_t((__pyx_t_2[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 603, __pyx_L1_error)
10847 0 : __Pyx_GOTREF(__pyx_t_5);
10848 0 : __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_5);
10849 0 : __pyx_t_5 = 0;
10850 :
10851 : /* "View.MemoryView":604
10852 : *
10853 : * for length in self.view.shape[:self.view.ndim]:
10854 : * result *= length # <<<<<<<<<<<<<<
10855 : *
10856 : * self._size = result
10857 : */
10858 0 : __pyx_t_5 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 604, __pyx_L1_error)
10859 0 : __Pyx_GOTREF(__pyx_t_5);
10860 0 : __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_5);
10861 0 : __pyx_t_5 = 0;
10862 : }
10863 :
10864 : /* "View.MemoryView":606
10865 : * result *= length
10866 : *
10867 : * self._size = result # <<<<<<<<<<<<<<
10868 : *
10869 : * return self._size
10870 : */
10871 0 : __Pyx_INCREF(__pyx_v_result);
10872 0 : __Pyx_GIVEREF(__pyx_v_result);
10873 0 : __Pyx_GOTREF(__pyx_v_self->_size);
10874 0 : __Pyx_DECREF(__pyx_v_self->_size);
10875 0 : __pyx_v_self->_size = __pyx_v_result;
10876 :
10877 : /* "View.MemoryView":600
10878 : * @property
10879 : * def size(self):
10880 : * if self._size is None: # <<<<<<<<<<<<<<
10881 : * result = 1
10882 : *
10883 : */
10884 : }
10885 :
10886 : /* "View.MemoryView":608
10887 : * self._size = result
10888 : *
10889 : * return self._size # <<<<<<<<<<<<<<
10890 : *
10891 : * def __len__(self):
10892 : */
10893 0 : __Pyx_XDECREF(__pyx_r);
10894 0 : __Pyx_INCREF(__pyx_v_self->_size);
10895 0 : __pyx_r = __pyx_v_self->_size;
10896 0 : goto __pyx_L0;
10897 :
10898 : /* "View.MemoryView":598
10899 : * return self.size * self.view.itemsize
10900 : *
10901 : * @property # <<<<<<<<<<<<<<
10902 : * def size(self):
10903 : * if self._size is None:
10904 : */
10905 :
10906 : /* function exit code */
10907 0 : __pyx_L1_error:;
10908 0 : __Pyx_XDECREF(__pyx_t_5);
10909 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
10910 0 : __pyx_r = NULL;
10911 0 : __pyx_L0:;
10912 0 : __Pyx_XDECREF(__pyx_v_result);
10913 0 : __Pyx_XDECREF(__pyx_v_length);
10914 0 : __Pyx_XGIVEREF(__pyx_r);
10915 0 : __Pyx_RefNannyFinishContext();
10916 0 : return __pyx_r;
10917 : }
10918 :
10919 : /* "View.MemoryView":610
10920 : * return self._size
10921 : *
10922 : * def __len__(self): # <<<<<<<<<<<<<<
10923 : * if self.view.ndim >= 1:
10924 : * return self.view.shape[0]
10925 : */
10926 :
10927 : /* Python wrapper */
10928 : static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/
10929 0 : static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) {
10930 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
10931 0 : Py_ssize_t __pyx_r;
10932 : __Pyx_RefNannyDeclarations
10933 0 : __Pyx_RefNannySetupContext("__len__ (wrapper)", 0);
10934 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
10935 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self));
10936 :
10937 : /* function exit code */
10938 0 : __Pyx_RefNannyFinishContext();
10939 0 : return __pyx_r;
10940 : }
10941 :
10942 0 : static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) {
10943 0 : Py_ssize_t __pyx_r;
10944 0 : int __pyx_t_1;
10945 :
10946 : /* "View.MemoryView":611
10947 : *
10948 : * def __len__(self):
10949 : * if self.view.ndim >= 1: # <<<<<<<<<<<<<<
10950 : * return self.view.shape[0]
10951 : *
10952 : */
10953 0 : __pyx_t_1 = (__pyx_v_self->view.ndim >= 1);
10954 0 : if (__pyx_t_1) {
10955 :
10956 : /* "View.MemoryView":612
10957 : * def __len__(self):
10958 : * if self.view.ndim >= 1:
10959 : * return self.view.shape[0] # <<<<<<<<<<<<<<
10960 : *
10961 : * return 0
10962 : */
10963 0 : __pyx_r = (__pyx_v_self->view.shape[0]);
10964 0 : goto __pyx_L0;
10965 :
10966 : /* "View.MemoryView":611
10967 : *
10968 : * def __len__(self):
10969 : * if self.view.ndim >= 1: # <<<<<<<<<<<<<<
10970 : * return self.view.shape[0]
10971 : *
10972 : */
10973 : }
10974 :
10975 : /* "View.MemoryView":614
10976 : * return self.view.shape[0]
10977 : *
10978 : * return 0 # <<<<<<<<<<<<<<
10979 : *
10980 : * def __repr__(self):
10981 : */
10982 0 : __pyx_r = 0;
10983 0 : goto __pyx_L0;
10984 :
10985 : /* "View.MemoryView":610
10986 : * return self._size
10987 : *
10988 : * def __len__(self): # <<<<<<<<<<<<<<
10989 : * if self.view.ndim >= 1:
10990 : * return self.view.shape[0]
10991 : */
10992 :
10993 : /* function exit code */
10994 0 : __pyx_L0:;
10995 0 : return __pyx_r;
10996 : }
10997 :
10998 : /* "View.MemoryView":616
10999 : * return 0
11000 : *
11001 : * def __repr__(self): # <<<<<<<<<<<<<<
11002 : * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
11003 : * id(self))
11004 : */
11005 :
11006 : /* Python wrapper */
11007 : static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/
11008 0 : static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) {
11009 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11010 0 : PyObject *__pyx_r = 0;
11011 : __Pyx_RefNannyDeclarations
11012 0 : __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0);
11013 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
11014 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self));
11015 :
11016 : /* function exit code */
11017 0 : __Pyx_RefNannyFinishContext();
11018 0 : return __pyx_r;
11019 : }
11020 :
11021 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) {
11022 0 : PyObject *__pyx_r = NULL;
11023 : __Pyx_RefNannyDeclarations
11024 0 : PyObject *__pyx_t_1 = NULL;
11025 0 : PyObject *__pyx_t_2 = NULL;
11026 0 : PyObject *__pyx_t_3 = NULL;
11027 0 : int __pyx_lineno = 0;
11028 0 : const char *__pyx_filename = NULL;
11029 0 : int __pyx_clineno = 0;
11030 0 : __Pyx_RefNannySetupContext("__repr__", 1);
11031 :
11032 : /* "View.MemoryView":617
11033 : *
11034 : * def __repr__(self):
11035 : * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__, # <<<<<<<<<<<<<<
11036 : * id(self))
11037 : *
11038 : */
11039 0 : __Pyx_XDECREF(__pyx_r);
11040 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
11041 0 : __Pyx_GOTREF(__pyx_t_1);
11042 0 : __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error)
11043 0 : __Pyx_GOTREF(__pyx_t_2);
11044 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11045 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error)
11046 0 : __Pyx_GOTREF(__pyx_t_1);
11047 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11048 :
11049 : /* "View.MemoryView":618
11050 : * def __repr__(self):
11051 : * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
11052 : * id(self)) # <<<<<<<<<<<<<<
11053 : *
11054 : * def __str__(self):
11055 : */
11056 0 : __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 618, __pyx_L1_error)
11057 0 : __Pyx_GOTREF(__pyx_t_2);
11058 :
11059 : /* "View.MemoryView":617
11060 : *
11061 : * def __repr__(self):
11062 : * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__, # <<<<<<<<<<<<<<
11063 : * id(self))
11064 : *
11065 : */
11066 0 : __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 617, __pyx_L1_error)
11067 0 : __Pyx_GOTREF(__pyx_t_3);
11068 0 : __Pyx_GIVEREF(__pyx_t_1);
11069 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 617, __pyx_L1_error);
11070 0 : __Pyx_GIVEREF(__pyx_t_2);
11071 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error);
11072 0 : __pyx_t_1 = 0;
11073 0 : __pyx_t_2 = 0;
11074 0 : __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 617, __pyx_L1_error)
11075 0 : __Pyx_GOTREF(__pyx_t_2);
11076 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11077 0 : __pyx_r = __pyx_t_2;
11078 0 : __pyx_t_2 = 0;
11079 0 : goto __pyx_L0;
11080 :
11081 : /* "View.MemoryView":616
11082 : * return 0
11083 : *
11084 : * def __repr__(self): # <<<<<<<<<<<<<<
11085 : * return "<MemoryView of %r at 0x%x>" % (self.base.__class__.__name__,
11086 : * id(self))
11087 : */
11088 :
11089 : /* function exit code */
11090 0 : __pyx_L1_error:;
11091 0 : __Pyx_XDECREF(__pyx_t_1);
11092 0 : __Pyx_XDECREF(__pyx_t_2);
11093 0 : __Pyx_XDECREF(__pyx_t_3);
11094 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11095 0 : __pyx_r = NULL;
11096 0 : __pyx_L0:;
11097 0 : __Pyx_XGIVEREF(__pyx_r);
11098 0 : __Pyx_RefNannyFinishContext();
11099 0 : return __pyx_r;
11100 : }
11101 :
11102 : /* "View.MemoryView":620
11103 : * id(self))
11104 : *
11105 : * def __str__(self): # <<<<<<<<<<<<<<
11106 : * return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
11107 : *
11108 : */
11109 :
11110 : /* Python wrapper */
11111 : static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/
11112 0 : static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) {
11113 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11114 0 : PyObject *__pyx_r = 0;
11115 : __Pyx_RefNannyDeclarations
11116 0 : __Pyx_RefNannySetupContext("__str__ (wrapper)", 0);
11117 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
11118 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self));
11119 :
11120 : /* function exit code */
11121 0 : __Pyx_RefNannyFinishContext();
11122 0 : return __pyx_r;
11123 : }
11124 :
11125 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) {
11126 0 : PyObject *__pyx_r = NULL;
11127 : __Pyx_RefNannyDeclarations
11128 0 : PyObject *__pyx_t_1 = NULL;
11129 0 : PyObject *__pyx_t_2 = NULL;
11130 0 : int __pyx_lineno = 0;
11131 0 : const char *__pyx_filename = NULL;
11132 0 : int __pyx_clineno = 0;
11133 0 : __Pyx_RefNannySetupContext("__str__", 1);
11134 :
11135 : /* "View.MemoryView":621
11136 : *
11137 : * def __str__(self):
11138 : * return "<MemoryView of %r object>" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<<
11139 : *
11140 : *
11141 : */
11142 0 : __Pyx_XDECREF(__pyx_r);
11143 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
11144 0 : __Pyx_GOTREF(__pyx_t_1);
11145 0 : __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 621, __pyx_L1_error)
11146 0 : __Pyx_GOTREF(__pyx_t_2);
11147 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
11148 0 : __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
11149 0 : __Pyx_GOTREF(__pyx_t_1);
11150 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11151 0 : __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 621, __pyx_L1_error)
11152 0 : __Pyx_GOTREF(__pyx_t_2);
11153 0 : __Pyx_GIVEREF(__pyx_t_1);
11154 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error);
11155 0 : __pyx_t_1 = 0;
11156 0 : __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 621, __pyx_L1_error)
11157 0 : __Pyx_GOTREF(__pyx_t_1);
11158 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
11159 0 : __pyx_r = __pyx_t_1;
11160 0 : __pyx_t_1 = 0;
11161 0 : goto __pyx_L0;
11162 :
11163 : /* "View.MemoryView":620
11164 : * id(self))
11165 : *
11166 : * def __str__(self): # <<<<<<<<<<<<<<
11167 : * return "<MemoryView of %r object>" % (self.base.__class__.__name__,)
11168 : *
11169 : */
11170 :
11171 : /* function exit code */
11172 0 : __pyx_L1_error:;
11173 0 : __Pyx_XDECREF(__pyx_t_1);
11174 0 : __Pyx_XDECREF(__pyx_t_2);
11175 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11176 0 : __pyx_r = NULL;
11177 0 : __pyx_L0:;
11178 0 : __Pyx_XGIVEREF(__pyx_r);
11179 0 : __Pyx_RefNannyFinishContext();
11180 0 : return __pyx_r;
11181 : }
11182 :
11183 : /* "View.MemoryView":624
11184 : *
11185 : *
11186 : * def is_c_contig(self): # <<<<<<<<<<<<<<
11187 : * cdef __Pyx_memviewslice *mslice
11188 : * cdef __Pyx_memviewslice tmp
11189 : */
11190 :
11191 : /* Python wrapper */
11192 : static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self,
11193 : #if CYTHON_METH_FASTCALL
11194 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11195 : #else
11196 : PyObject *__pyx_args, PyObject *__pyx_kwds
11197 : #endif
11198 : ); /*proto*/
11199 0 : static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self,
11200 : #if CYTHON_METH_FASTCALL
11201 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11202 : #else
11203 : PyObject *__pyx_args, PyObject *__pyx_kwds
11204 : #endif
11205 : ) {
11206 : #if !CYTHON_METH_FASTCALL
11207 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11208 : #endif
11209 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11210 0 : PyObject *__pyx_r = 0;
11211 : __Pyx_RefNannyDeclarations
11212 0 : __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0);
11213 : #if !CYTHON_METH_FASTCALL
11214 : #if CYTHON_ASSUME_SAFE_MACROS
11215 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11216 : #else
11217 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11218 : #endif
11219 : #endif
11220 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11221 0 : if (unlikely(__pyx_nargs > 0)) {
11222 0 : __Pyx_RaiseArgtupleInvalid("is_c_contig", 1, 0, 0, __pyx_nargs); return NULL;}
11223 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_c_contig", 0))) return NULL;
11224 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
11225 :
11226 : /* function exit code */
11227 0 : __Pyx_RefNannyFinishContext();
11228 0 : return __pyx_r;
11229 : }
11230 :
11231 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
11232 0 : __Pyx_memviewslice *__pyx_v_mslice;
11233 0 : __Pyx_memviewslice __pyx_v_tmp;
11234 0 : PyObject *__pyx_r = NULL;
11235 : __Pyx_RefNannyDeclarations
11236 0 : __Pyx_memviewslice *__pyx_t_1;
11237 0 : PyObject *__pyx_t_2 = NULL;
11238 0 : int __pyx_lineno = 0;
11239 0 : const char *__pyx_filename = NULL;
11240 0 : int __pyx_clineno = 0;
11241 0 : __Pyx_RefNannySetupContext("is_c_contig", 1);
11242 :
11243 : /* "View.MemoryView":627
11244 : * cdef __Pyx_memviewslice *mslice
11245 : * cdef __Pyx_memviewslice tmp
11246 : * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<<
11247 : * return slice_is_contig(mslice[0], 'C', self.view.ndim)
11248 : *
11249 : */
11250 0 : __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 627, __pyx_L1_error)
11251 0 : __pyx_v_mslice = __pyx_t_1;
11252 :
11253 : /* "View.MemoryView":628
11254 : * cdef __Pyx_memviewslice tmp
11255 : * mslice = get_slice_from_memview(self, &tmp)
11256 : * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<<
11257 : *
11258 : * def is_f_contig(self):
11259 : */
11260 0 : __Pyx_XDECREF(__pyx_r);
11261 0 : __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 628, __pyx_L1_error)
11262 0 : __Pyx_GOTREF(__pyx_t_2);
11263 0 : __pyx_r = __pyx_t_2;
11264 0 : __pyx_t_2 = 0;
11265 0 : goto __pyx_L0;
11266 :
11267 : /* "View.MemoryView":624
11268 : *
11269 : *
11270 : * def is_c_contig(self): # <<<<<<<<<<<<<<
11271 : * cdef __Pyx_memviewslice *mslice
11272 : * cdef __Pyx_memviewslice tmp
11273 : */
11274 :
11275 : /* function exit code */
11276 0 : __pyx_L1_error:;
11277 0 : __Pyx_XDECREF(__pyx_t_2);
11278 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
11279 0 : __pyx_r = NULL;
11280 0 : __pyx_L0:;
11281 0 : __Pyx_XGIVEREF(__pyx_r);
11282 0 : __Pyx_RefNannyFinishContext();
11283 0 : return __pyx_r;
11284 : }
11285 :
11286 : /* "View.MemoryView":630
11287 : * return slice_is_contig(mslice[0], 'C', self.view.ndim)
11288 : *
11289 : * def is_f_contig(self): # <<<<<<<<<<<<<<
11290 : * cdef __Pyx_memviewslice *mslice
11291 : * cdef __Pyx_memviewslice tmp
11292 : */
11293 :
11294 : /* Python wrapper */
11295 : static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self,
11296 : #if CYTHON_METH_FASTCALL
11297 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11298 : #else
11299 : PyObject *__pyx_args, PyObject *__pyx_kwds
11300 : #endif
11301 : ); /*proto*/
11302 0 : static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self,
11303 : #if CYTHON_METH_FASTCALL
11304 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11305 : #else
11306 : PyObject *__pyx_args, PyObject *__pyx_kwds
11307 : #endif
11308 : ) {
11309 : #if !CYTHON_METH_FASTCALL
11310 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11311 : #endif
11312 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11313 0 : PyObject *__pyx_r = 0;
11314 : __Pyx_RefNannyDeclarations
11315 0 : __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0);
11316 : #if !CYTHON_METH_FASTCALL
11317 : #if CYTHON_ASSUME_SAFE_MACROS
11318 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11319 : #else
11320 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11321 : #endif
11322 : #endif
11323 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11324 0 : if (unlikely(__pyx_nargs > 0)) {
11325 0 : __Pyx_RaiseArgtupleInvalid("is_f_contig", 1, 0, 0, __pyx_nargs); return NULL;}
11326 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "is_f_contig", 0))) return NULL;
11327 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self));
11328 :
11329 : /* function exit code */
11330 0 : __Pyx_RefNannyFinishContext();
11331 0 : return __pyx_r;
11332 : }
11333 :
11334 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) {
11335 0 : __Pyx_memviewslice *__pyx_v_mslice;
11336 0 : __Pyx_memviewslice __pyx_v_tmp;
11337 0 : PyObject *__pyx_r = NULL;
11338 : __Pyx_RefNannyDeclarations
11339 0 : __Pyx_memviewslice *__pyx_t_1;
11340 0 : PyObject *__pyx_t_2 = NULL;
11341 0 : int __pyx_lineno = 0;
11342 0 : const char *__pyx_filename = NULL;
11343 0 : int __pyx_clineno = 0;
11344 0 : __Pyx_RefNannySetupContext("is_f_contig", 1);
11345 :
11346 : /* "View.MemoryView":633
11347 : * cdef __Pyx_memviewslice *mslice
11348 : * cdef __Pyx_memviewslice tmp
11349 : * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<<
11350 : * return slice_is_contig(mslice[0], 'F', self.view.ndim)
11351 : *
11352 : */
11353 0 : __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(1, 633, __pyx_L1_error)
11354 0 : __pyx_v_mslice = __pyx_t_1;
11355 :
11356 : /* "View.MemoryView":634
11357 : * cdef __Pyx_memviewslice tmp
11358 : * mslice = get_slice_from_memview(self, &tmp)
11359 : * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<<
11360 : *
11361 : * def copy(self):
11362 : */
11363 0 : __Pyx_XDECREF(__pyx_r);
11364 0 : __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 634, __pyx_L1_error)
11365 0 : __Pyx_GOTREF(__pyx_t_2);
11366 0 : __pyx_r = __pyx_t_2;
11367 0 : __pyx_t_2 = 0;
11368 0 : goto __pyx_L0;
11369 :
11370 : /* "View.MemoryView":630
11371 : * return slice_is_contig(mslice[0], 'C', self.view.ndim)
11372 : *
11373 : * def is_f_contig(self): # <<<<<<<<<<<<<<
11374 : * cdef __Pyx_memviewslice *mslice
11375 : * cdef __Pyx_memviewslice tmp
11376 : */
11377 :
11378 : /* function exit code */
11379 0 : __pyx_L1_error:;
11380 0 : __Pyx_XDECREF(__pyx_t_2);
11381 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename);
11382 0 : __pyx_r = NULL;
11383 0 : __pyx_L0:;
11384 0 : __Pyx_XGIVEREF(__pyx_r);
11385 0 : __Pyx_RefNannyFinishContext();
11386 0 : return __pyx_r;
11387 : }
11388 :
11389 : /* "View.MemoryView":636
11390 : * return slice_is_contig(mslice[0], 'F', self.view.ndim)
11391 : *
11392 : * def copy(self): # <<<<<<<<<<<<<<
11393 : * cdef __Pyx_memviewslice mslice
11394 : * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
11395 : */
11396 :
11397 : /* Python wrapper */
11398 : static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self,
11399 : #if CYTHON_METH_FASTCALL
11400 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11401 : #else
11402 : PyObject *__pyx_args, PyObject *__pyx_kwds
11403 : #endif
11404 : ); /*proto*/
11405 0 : static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self,
11406 : #if CYTHON_METH_FASTCALL
11407 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11408 : #else
11409 : PyObject *__pyx_args, PyObject *__pyx_kwds
11410 : #endif
11411 : ) {
11412 : #if !CYTHON_METH_FASTCALL
11413 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11414 : #endif
11415 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11416 0 : PyObject *__pyx_r = 0;
11417 : __Pyx_RefNannyDeclarations
11418 0 : __Pyx_RefNannySetupContext("copy (wrapper)", 0);
11419 : #if !CYTHON_METH_FASTCALL
11420 : #if CYTHON_ASSUME_SAFE_MACROS
11421 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11422 : #else
11423 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11424 : #endif
11425 : #endif
11426 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11427 0 : if (unlikely(__pyx_nargs > 0)) {
11428 0 : __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, __pyx_nargs); return NULL;}
11429 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy", 0))) return NULL;
11430 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self));
11431 :
11432 : /* function exit code */
11433 0 : __Pyx_RefNannyFinishContext();
11434 0 : return __pyx_r;
11435 : }
11436 :
11437 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) {
11438 0 : __Pyx_memviewslice __pyx_v_mslice;
11439 0 : int __pyx_v_flags;
11440 0 : PyObject *__pyx_r = NULL;
11441 : __Pyx_RefNannyDeclarations
11442 0 : __Pyx_memviewslice __pyx_t_1;
11443 0 : PyObject *__pyx_t_2 = NULL;
11444 0 : int __pyx_lineno = 0;
11445 0 : const char *__pyx_filename = NULL;
11446 0 : int __pyx_clineno = 0;
11447 0 : __Pyx_RefNannySetupContext("copy", 1);
11448 :
11449 : /* "View.MemoryView":638
11450 : * def copy(self):
11451 : * cdef __Pyx_memviewslice mslice
11452 : * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<<
11453 : *
11454 : * slice_copy(self, &mslice)
11455 : */
11456 0 : __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS));
11457 :
11458 : /* "View.MemoryView":640
11459 : * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
11460 : *
11461 : * slice_copy(self, &mslice) # <<<<<<<<<<<<<<
11462 : * mslice = slice_copy_contig(&mslice, "c", self.view.ndim,
11463 : * self.view.itemsize,
11464 : */
11465 0 : __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice));
11466 :
11467 : /* "View.MemoryView":641
11468 : *
11469 : * slice_copy(self, &mslice)
11470 : * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<<
11471 : * self.view.itemsize,
11472 : * flags|PyBUF_C_CONTIGUOUS,
11473 : */
11474 0 : __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 641, __pyx_L1_error)
11475 0 : __pyx_v_mslice = __pyx_t_1;
11476 :
11477 : /* "View.MemoryView":646
11478 : * self.dtype_is_object)
11479 : *
11480 : * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<<
11481 : *
11482 : * def copy_fortran(self):
11483 : */
11484 0 : __Pyx_XDECREF(__pyx_r);
11485 0 : __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 646, __pyx_L1_error)
11486 0 : __Pyx_GOTREF(__pyx_t_2);
11487 0 : __pyx_r = __pyx_t_2;
11488 0 : __pyx_t_2 = 0;
11489 0 : goto __pyx_L0;
11490 :
11491 : /* "View.MemoryView":636
11492 : * return slice_is_contig(mslice[0], 'F', self.view.ndim)
11493 : *
11494 : * def copy(self): # <<<<<<<<<<<<<<
11495 : * cdef __Pyx_memviewslice mslice
11496 : * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS
11497 : */
11498 :
11499 : /* function exit code */
11500 0 : __pyx_L1_error:;
11501 0 : __Pyx_XDECREF(__pyx_t_2);
11502 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
11503 0 : __pyx_r = NULL;
11504 0 : __pyx_L0:;
11505 0 : __Pyx_XGIVEREF(__pyx_r);
11506 0 : __Pyx_RefNannyFinishContext();
11507 0 : return __pyx_r;
11508 : }
11509 :
11510 : /* "View.MemoryView":648
11511 : * return memoryview_copy_from_slice(self, &mslice)
11512 : *
11513 : * def copy_fortran(self): # <<<<<<<<<<<<<<
11514 : * cdef __Pyx_memviewslice src, dst
11515 : * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
11516 : */
11517 :
11518 : /* Python wrapper */
11519 : static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self,
11520 : #if CYTHON_METH_FASTCALL
11521 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11522 : #else
11523 : PyObject *__pyx_args, PyObject *__pyx_kwds
11524 : #endif
11525 : ); /*proto*/
11526 0 : static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self,
11527 : #if CYTHON_METH_FASTCALL
11528 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11529 : #else
11530 : PyObject *__pyx_args, PyObject *__pyx_kwds
11531 : #endif
11532 : ) {
11533 : #if !CYTHON_METH_FASTCALL
11534 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11535 : #endif
11536 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11537 0 : PyObject *__pyx_r = 0;
11538 : __Pyx_RefNannyDeclarations
11539 0 : __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0);
11540 : #if !CYTHON_METH_FASTCALL
11541 : #if CYTHON_ASSUME_SAFE_MACROS
11542 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11543 : #else
11544 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11545 : #endif
11546 : #endif
11547 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11548 0 : if (unlikely(__pyx_nargs > 0)) {
11549 0 : __Pyx_RaiseArgtupleInvalid("copy_fortran", 1, 0, 0, __pyx_nargs); return NULL;}
11550 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy_fortran", 0))) return NULL;
11551 0 : __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self));
11552 :
11553 : /* function exit code */
11554 0 : __Pyx_RefNannyFinishContext();
11555 0 : return __pyx_r;
11556 : }
11557 :
11558 0 : static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) {
11559 0 : __Pyx_memviewslice __pyx_v_src;
11560 0 : __Pyx_memviewslice __pyx_v_dst;
11561 0 : int __pyx_v_flags;
11562 0 : PyObject *__pyx_r = NULL;
11563 : __Pyx_RefNannyDeclarations
11564 0 : __Pyx_memviewslice __pyx_t_1;
11565 0 : PyObject *__pyx_t_2 = NULL;
11566 0 : int __pyx_lineno = 0;
11567 0 : const char *__pyx_filename = NULL;
11568 0 : int __pyx_clineno = 0;
11569 0 : __Pyx_RefNannySetupContext("copy_fortran", 1);
11570 :
11571 : /* "View.MemoryView":650
11572 : * def copy_fortran(self):
11573 : * cdef __Pyx_memviewslice src, dst
11574 : * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<<
11575 : *
11576 : * slice_copy(self, &src)
11577 : */
11578 0 : __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS));
11579 :
11580 : /* "View.MemoryView":652
11581 : * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
11582 : *
11583 : * slice_copy(self, &src) # <<<<<<<<<<<<<<
11584 : * dst = slice_copy_contig(&src, "fortran", self.view.ndim,
11585 : * self.view.itemsize,
11586 : */
11587 0 : __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src));
11588 :
11589 : /* "View.MemoryView":653
11590 : *
11591 : * slice_copy(self, &src)
11592 : * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<<
11593 : * self.view.itemsize,
11594 : * flags|PyBUF_F_CONTIGUOUS,
11595 : */
11596 0 : __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 653, __pyx_L1_error)
11597 0 : __pyx_v_dst = __pyx_t_1;
11598 :
11599 : /* "View.MemoryView":658
11600 : * self.dtype_is_object)
11601 : *
11602 : * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<<
11603 : *
11604 : *
11605 : */
11606 0 : __Pyx_XDECREF(__pyx_r);
11607 0 : __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error)
11608 0 : __Pyx_GOTREF(__pyx_t_2);
11609 0 : __pyx_r = __pyx_t_2;
11610 0 : __pyx_t_2 = 0;
11611 0 : goto __pyx_L0;
11612 :
11613 : /* "View.MemoryView":648
11614 : * return memoryview_copy_from_slice(self, &mslice)
11615 : *
11616 : * def copy_fortran(self): # <<<<<<<<<<<<<<
11617 : * cdef __Pyx_memviewslice src, dst
11618 : * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS
11619 : */
11620 :
11621 : /* function exit code */
11622 0 : __pyx_L1_error:;
11623 0 : __Pyx_XDECREF(__pyx_t_2);
11624 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename);
11625 0 : __pyx_r = NULL;
11626 0 : __pyx_L0:;
11627 0 : __Pyx_XGIVEREF(__pyx_r);
11628 0 : __Pyx_RefNannyFinishContext();
11629 0 : return __pyx_r;
11630 : }
11631 :
11632 : /* "(tree fragment)":1
11633 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
11634 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11635 : * def __setstate_cython__(self, __pyx_state):
11636 : */
11637 :
11638 : /* Python wrapper */
11639 : static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self,
11640 : #if CYTHON_METH_FASTCALL
11641 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11642 : #else
11643 : PyObject *__pyx_args, PyObject *__pyx_kwds
11644 : #endif
11645 : ); /*proto*/
11646 0 : static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self,
11647 : #if CYTHON_METH_FASTCALL
11648 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11649 : #else
11650 : PyObject *__pyx_args, PyObject *__pyx_kwds
11651 : #endif
11652 : ) {
11653 : #if !CYTHON_METH_FASTCALL
11654 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11655 : #endif
11656 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11657 0 : PyObject *__pyx_r = 0;
11658 : __Pyx_RefNannyDeclarations
11659 0 : __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
11660 : #if !CYTHON_METH_FASTCALL
11661 : #if CYTHON_ASSUME_SAFE_MACROS
11662 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11663 : #else
11664 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11665 : #endif
11666 : #endif
11667 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11668 0 : if (unlikely(__pyx_nargs > 0)) {
11669 0 : __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
11670 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
11671 0 : __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self));
11672 :
11673 : /* function exit code */
11674 0 : __Pyx_RefNannyFinishContext();
11675 0 : return __pyx_r;
11676 : }
11677 :
11678 0 : static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) {
11679 0 : PyObject *__pyx_r = NULL;
11680 : __Pyx_RefNannyDeclarations
11681 0 : int __pyx_lineno = 0;
11682 0 : const char *__pyx_filename = NULL;
11683 0 : int __pyx_clineno = 0;
11684 0 : __Pyx_RefNannySetupContext("__reduce_cython__", 1);
11685 :
11686 : /* "(tree fragment)":2
11687 : * def __reduce_cython__(self):
11688 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
11689 : * def __setstate_cython__(self, __pyx_state):
11690 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11691 : */
11692 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
11693 0 : __PYX_ERR(1, 2, __pyx_L1_error)
11694 :
11695 : /* "(tree fragment)":1
11696 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
11697 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11698 : * def __setstate_cython__(self, __pyx_state):
11699 : */
11700 :
11701 : /* function exit code */
11702 0 : __pyx_L1_error:;
11703 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11704 0 : __pyx_r = NULL;
11705 0 : __Pyx_XGIVEREF(__pyx_r);
11706 0 : __Pyx_RefNannyFinishContext();
11707 0 : return __pyx_r;
11708 : }
11709 :
11710 : /* "(tree fragment)":3
11711 : * def __reduce_cython__(self):
11712 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11713 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
11714 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11715 : */
11716 :
11717 : /* Python wrapper */
11718 : static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self,
11719 : #if CYTHON_METH_FASTCALL
11720 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11721 : #else
11722 : PyObject *__pyx_args, PyObject *__pyx_kwds
11723 : #endif
11724 : ); /*proto*/
11725 0 : static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self,
11726 : #if CYTHON_METH_FASTCALL
11727 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
11728 : #else
11729 : PyObject *__pyx_args, PyObject *__pyx_kwds
11730 : #endif
11731 : ) {
11732 0 : CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
11733 : #if !CYTHON_METH_FASTCALL
11734 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
11735 : #endif
11736 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
11737 0 : PyObject* values[1] = {0};
11738 0 : int __pyx_lineno = 0;
11739 0 : const char *__pyx_filename = NULL;
11740 0 : int __pyx_clineno = 0;
11741 0 : PyObject *__pyx_r = 0;
11742 : __Pyx_RefNannyDeclarations
11743 0 : __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
11744 : #if !CYTHON_METH_FASTCALL
11745 : #if CYTHON_ASSUME_SAFE_MACROS
11746 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
11747 : #else
11748 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
11749 : #endif
11750 : #endif
11751 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
11752 : {
11753 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
11754 0 : if (__pyx_kwds) {
11755 0 : Py_ssize_t kw_args;
11756 0 : switch (__pyx_nargs) {
11757 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
11758 0 : CYTHON_FALLTHROUGH;
11759 0 : case 0: break;
11760 0 : default: goto __pyx_L5_argtuple_error;
11761 : }
11762 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
11763 0 : switch (__pyx_nargs) {
11764 : case 0:
11765 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
11766 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
11767 0 : kw_args--;
11768 : }
11769 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
11770 0 : else goto __pyx_L5_argtuple_error;
11771 : }
11772 0 : if (unlikely(kw_args > 0)) {
11773 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
11774 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
11775 : }
11776 0 : } else if (unlikely(__pyx_nargs != 1)) {
11777 0 : goto __pyx_L5_argtuple_error;
11778 : } else {
11779 0 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
11780 : }
11781 0 : __pyx_v___pyx_state = values[0];
11782 : }
11783 0 : goto __pyx_L6_skip;
11784 0 : __pyx_L5_argtuple_error:;
11785 0 : __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
11786 0 : __pyx_L6_skip:;
11787 0 : goto __pyx_L4_argument_unpacking_done;
11788 0 : __pyx_L3_error:;
11789 : {
11790 0 : Py_ssize_t __pyx_temp;
11791 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11792 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
11793 : }
11794 : }
11795 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11796 0 : __Pyx_RefNannyFinishContext();
11797 0 : return NULL;
11798 0 : __pyx_L4_argument_unpacking_done:;
11799 0 : __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v___pyx_state);
11800 :
11801 : /* function exit code */
11802 : {
11803 0 : Py_ssize_t __pyx_temp;
11804 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
11805 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
11806 : }
11807 : }
11808 : __Pyx_RefNannyFinishContext();
11809 : return __pyx_r;
11810 : }
11811 :
11812 0 : static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
11813 0 : PyObject *__pyx_r = NULL;
11814 : __Pyx_RefNannyDeclarations
11815 0 : int __pyx_lineno = 0;
11816 0 : const char *__pyx_filename = NULL;
11817 0 : int __pyx_clineno = 0;
11818 0 : __Pyx_RefNannySetupContext("__setstate_cython__", 1);
11819 :
11820 : /* "(tree fragment)":4
11821 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11822 : * def __setstate_cython__(self, __pyx_state):
11823 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
11824 : */
11825 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
11826 0 : __PYX_ERR(1, 4, __pyx_L1_error)
11827 :
11828 : /* "(tree fragment)":3
11829 : * def __reduce_cython__(self):
11830 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11831 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
11832 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
11833 : */
11834 :
11835 : /* function exit code */
11836 0 : __pyx_L1_error:;
11837 0 : __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
11838 0 : __pyx_r = NULL;
11839 0 : __Pyx_XGIVEREF(__pyx_r);
11840 0 : __Pyx_RefNannyFinishContext();
11841 0 : return __pyx_r;
11842 : }
11843 :
11844 : /* "View.MemoryView":662
11845 : *
11846 : * @cname('__pyx_memoryview_new')
11847 : * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<<
11848 : * cdef memoryview result = memoryview(o, flags, dtype_is_object)
11849 : * result.typeinfo = typeinfo
11850 : */
11851 :
11852 405 : static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) {
11853 405 : struct __pyx_memoryview_obj *__pyx_v_result = 0;
11854 405 : PyObject *__pyx_r = NULL;
11855 : __Pyx_RefNannyDeclarations
11856 405 : PyObject *__pyx_t_1 = NULL;
11857 405 : PyObject *__pyx_t_2 = NULL;
11858 405 : PyObject *__pyx_t_3 = NULL;
11859 405 : int __pyx_lineno = 0;
11860 405 : const char *__pyx_filename = NULL;
11861 405 : int __pyx_clineno = 0;
11862 405 : __Pyx_RefNannySetupContext("memoryview_cwrapper", 1);
11863 :
11864 : /* "View.MemoryView":663
11865 : * @cname('__pyx_memoryview_new')
11866 : * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
11867 : * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<<
11868 : * result.typeinfo = typeinfo
11869 : * return result
11870 : */
11871 405 : __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error)
11872 405 : __Pyx_GOTREF(__pyx_t_1);
11873 405 : __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error)
11874 405 : __Pyx_GOTREF(__pyx_t_2);
11875 405 : __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 663, __pyx_L1_error)
11876 405 : __Pyx_GOTREF(__pyx_t_3);
11877 405 : __Pyx_INCREF(__pyx_v_o);
11878 405 : __Pyx_GIVEREF(__pyx_v_o);
11879 405 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o)) __PYX_ERR(1, 663, __pyx_L1_error);
11880 405 : __Pyx_GIVEREF(__pyx_t_1);
11881 405 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error);
11882 405 : __Pyx_GIVEREF(__pyx_t_2);
11883 405 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error);
11884 405 : __pyx_t_1 = 0;
11885 405 : __pyx_t_2 = 0;
11886 405 : __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error)
11887 405 : __Pyx_GOTREF(__pyx_t_2);
11888 405 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
11889 405 : __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2);
11890 405 : __pyx_t_2 = 0;
11891 :
11892 : /* "View.MemoryView":664
11893 : * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo):
11894 : * cdef memoryview result = memoryview(o, flags, dtype_is_object)
11895 : * result.typeinfo = typeinfo # <<<<<<<<<<<<<<
11896 : * return result
11897 : *
11898 : */
11899 405 : __pyx_v_result->typeinfo = __pyx_v_typeinfo;
11900 :
11901 : /* "View.MemoryView":665
11902 : * cdef memoryview result = memoryview(o, flags, dtype_is_object)
11903 : * result.typeinfo = typeinfo
11904 : * return result # <<<<<<<<<<<<<<
11905 : *
11906 : * @cname('__pyx_memoryview_check')
11907 : */
11908 405 : __Pyx_XDECREF(__pyx_r);
11909 405 : __Pyx_INCREF((PyObject *)__pyx_v_result);
11910 405 : __pyx_r = ((PyObject *)__pyx_v_result);
11911 405 : goto __pyx_L0;
11912 :
11913 : /* "View.MemoryView":662
11914 : *
11915 : * @cname('__pyx_memoryview_new')
11916 : * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<<
11917 : * cdef memoryview result = memoryview(o, flags, dtype_is_object)
11918 : * result.typeinfo = typeinfo
11919 : */
11920 :
11921 : /* function exit code */
11922 0 : __pyx_L1_error:;
11923 0 : __Pyx_XDECREF(__pyx_t_1);
11924 0 : __Pyx_XDECREF(__pyx_t_2);
11925 0 : __Pyx_XDECREF(__pyx_t_3);
11926 0 : __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename);
11927 0 : __pyx_r = 0;
11928 405 : __pyx_L0:;
11929 405 : __Pyx_XDECREF((PyObject *)__pyx_v_result);
11930 405 : __Pyx_XGIVEREF(__pyx_r);
11931 405 : __Pyx_RefNannyFinishContext();
11932 405 : return __pyx_r;
11933 : }
11934 :
11935 : /* "View.MemoryView":668
11936 : *
11937 : * @cname('__pyx_memoryview_check')
11938 : * cdef inline bint memoryview_check(object o) noexcept: # <<<<<<<<<<<<<<
11939 : * return isinstance(o, memoryview)
11940 : *
11941 : */
11942 :
11943 408 : static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) {
11944 408 : int __pyx_r;
11945 408 : int __pyx_t_1;
11946 :
11947 : /* "View.MemoryView":669
11948 : * @cname('__pyx_memoryview_check')
11949 : * cdef inline bint memoryview_check(object o) noexcept:
11950 : * return isinstance(o, memoryview) # <<<<<<<<<<<<<<
11951 : *
11952 : * cdef tuple _unellipsify(object index, int ndim):
11953 : */
11954 408 : __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type);
11955 408 : __pyx_r = __pyx_t_1;
11956 408 : goto __pyx_L0;
11957 :
11958 : /* "View.MemoryView":668
11959 : *
11960 : * @cname('__pyx_memoryview_check')
11961 : * cdef inline bint memoryview_check(object o) noexcept: # <<<<<<<<<<<<<<
11962 : * return isinstance(o, memoryview)
11963 : *
11964 : */
11965 :
11966 : /* function exit code */
11967 408 : __pyx_L0:;
11968 408 : return __pyx_r;
11969 : }
11970 :
11971 : /* "View.MemoryView":671
11972 : * return isinstance(o, memoryview)
11973 : *
11974 : * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<<
11975 : * """
11976 : * Replace all ellipses with full slices and fill incomplete indices with
11977 : */
11978 :
11979 0 : static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) {
11980 0 : Py_ssize_t __pyx_v_idx;
11981 0 : PyObject *__pyx_v_tup = NULL;
11982 0 : PyObject *__pyx_v_result = NULL;
11983 0 : int __pyx_v_have_slices;
11984 0 : int __pyx_v_seen_ellipsis;
11985 0 : PyObject *__pyx_v_item = NULL;
11986 0 : Py_ssize_t __pyx_v_nslices;
11987 0 : PyObject *__pyx_r = NULL;
11988 : __Pyx_RefNannyDeclarations
11989 0 : PyObject *__pyx_t_1 = NULL;
11990 0 : int __pyx_t_2;
11991 0 : PyObject *__pyx_t_3 = NULL;
11992 0 : Py_ssize_t __pyx_t_4;
11993 0 : Py_ssize_t __pyx_t_5;
11994 0 : Py_UCS4 __pyx_t_6;
11995 0 : PyObject *__pyx_t_7 = NULL;
11996 0 : int __pyx_lineno = 0;
11997 0 : const char *__pyx_filename = NULL;
11998 0 : int __pyx_clineno = 0;
11999 0 : __Pyx_RefNannySetupContext("_unellipsify", 1);
12000 :
12001 : /* "View.MemoryView":677
12002 : * """
12003 : * cdef Py_ssize_t idx
12004 : * tup = <tuple>index if isinstance(index, tuple) else (index,) # <<<<<<<<<<<<<<
12005 : *
12006 : * result = [slice(None)] * ndim
12007 : */
12008 0 : __pyx_t_2 = PyTuple_Check(__pyx_v_index);
12009 0 : if (__pyx_t_2) {
12010 0 : __Pyx_INCREF(((PyObject*)__pyx_v_index));
12011 : __pyx_t_1 = __pyx_v_index;
12012 : } else {
12013 0 : __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 677, __pyx_L1_error)
12014 0 : __Pyx_GOTREF(__pyx_t_3);
12015 0 : __Pyx_INCREF(__pyx_v_index);
12016 0 : __Pyx_GIVEREF(__pyx_v_index);
12017 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index)) __PYX_ERR(1, 677, __pyx_L1_error);
12018 0 : __pyx_t_1 = __pyx_t_3;
12019 0 : __pyx_t_3 = 0;
12020 : }
12021 0 : __pyx_v_tup = ((PyObject*)__pyx_t_1);
12022 0 : __pyx_t_1 = 0;
12023 :
12024 : /* "View.MemoryView":679
12025 : * tup = <tuple>index if isinstance(index, tuple) else (index,)
12026 : *
12027 : * result = [slice(None)] * ndim # <<<<<<<<<<<<<<
12028 : * have_slices = False
12029 : * seen_ellipsis = False
12030 : */
12031 0 : __pyx_t_1 = PyList_New(1 * ((__pyx_v_ndim<0) ? 0:__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 679, __pyx_L1_error)
12032 : __Pyx_GOTREF(__pyx_t_1);
12033 : { Py_ssize_t __pyx_temp;
12034 0 : for (__pyx_temp=0; __pyx_temp < __pyx_v_ndim; __pyx_temp++) {
12035 0 : __Pyx_INCREF(__pyx_slice__5);
12036 0 : __Pyx_GIVEREF(__pyx_slice__5);
12037 0 : if (__Pyx_PyList_SET_ITEM(__pyx_t_1, __pyx_temp, __pyx_slice__5)) __PYX_ERR(1, 679, __pyx_L1_error);
12038 : }
12039 : }
12040 0 : __pyx_v_result = ((PyObject*)__pyx_t_1);
12041 0 : __pyx_t_1 = 0;
12042 :
12043 : /* "View.MemoryView":680
12044 : *
12045 : * result = [slice(None)] * ndim
12046 : * have_slices = False # <<<<<<<<<<<<<<
12047 : * seen_ellipsis = False
12048 : * idx = 0
12049 : */
12050 0 : __pyx_v_have_slices = 0;
12051 :
12052 : /* "View.MemoryView":681
12053 : * result = [slice(None)] * ndim
12054 : * have_slices = False
12055 : * seen_ellipsis = False # <<<<<<<<<<<<<<
12056 : * idx = 0
12057 : * for item in tup:
12058 : */
12059 0 : __pyx_v_seen_ellipsis = 0;
12060 :
12061 : /* "View.MemoryView":682
12062 : * have_slices = False
12063 : * seen_ellipsis = False
12064 : * idx = 0 # <<<<<<<<<<<<<<
12065 : * for item in tup:
12066 : * if item is Ellipsis:
12067 : */
12068 0 : __pyx_v_idx = 0;
12069 :
12070 : /* "View.MemoryView":683
12071 : * seen_ellipsis = False
12072 : * idx = 0
12073 : * for item in tup: # <<<<<<<<<<<<<<
12074 : * if item is Ellipsis:
12075 : * if not seen_ellipsis:
12076 : */
12077 0 : if (unlikely(__pyx_v_tup == Py_None)) {
12078 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
12079 0 : __PYX_ERR(1, 683, __pyx_L1_error)
12080 : }
12081 0 : __pyx_t_1 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_1);
12082 : __pyx_t_4 = 0;
12083 0 : for (;;) {
12084 0 : {
12085 0 : Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_1);
12086 : #if !CYTHON_ASSUME_SAFE_MACROS
12087 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 683, __pyx_L1_error)
12088 : #endif
12089 0 : if (__pyx_t_4 >= __pyx_temp) break;
12090 : }
12091 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12092 0 : __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely((0 < 0))) __PYX_ERR(1, 683, __pyx_L1_error)
12093 : #else
12094 : __pyx_t_3 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 683, __pyx_L1_error)
12095 : __Pyx_GOTREF(__pyx_t_3);
12096 : #endif
12097 0 : __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
12098 0 : __pyx_t_3 = 0;
12099 :
12100 : /* "View.MemoryView":684
12101 : * idx = 0
12102 : * for item in tup:
12103 : * if item is Ellipsis: # <<<<<<<<<<<<<<
12104 : * if not seen_ellipsis:
12105 : * idx += ndim - len(tup)
12106 : */
12107 0 : __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis);
12108 0 : if (__pyx_t_2) {
12109 :
12110 : /* "View.MemoryView":685
12111 : * for item in tup:
12112 : * if item is Ellipsis:
12113 : * if not seen_ellipsis: # <<<<<<<<<<<<<<
12114 : * idx += ndim - len(tup)
12115 : * seen_ellipsis = True
12116 : */
12117 0 : __pyx_t_2 = (!__pyx_v_seen_ellipsis);
12118 0 : if (__pyx_t_2) {
12119 :
12120 : /* "View.MemoryView":686
12121 : * if item is Ellipsis:
12122 : * if not seen_ellipsis:
12123 : * idx += ndim - len(tup) # <<<<<<<<<<<<<<
12124 : * seen_ellipsis = True
12125 : * have_slices = True
12126 : */
12127 0 : if (unlikely(__pyx_v_tup == Py_None)) {
12128 : PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
12129 : __PYX_ERR(1, 686, __pyx_L1_error)
12130 : }
12131 0 : __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(__pyx_v_tup); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(1, 686, __pyx_L1_error)
12132 0 : __pyx_v_idx = (__pyx_v_idx + (__pyx_v_ndim - __pyx_t_5));
12133 :
12134 : /* "View.MemoryView":687
12135 : * if not seen_ellipsis:
12136 : * idx += ndim - len(tup)
12137 : * seen_ellipsis = True # <<<<<<<<<<<<<<
12138 : * have_slices = True
12139 : * else:
12140 : */
12141 0 : __pyx_v_seen_ellipsis = 1;
12142 :
12143 : /* "View.MemoryView":685
12144 : * for item in tup:
12145 : * if item is Ellipsis:
12146 : * if not seen_ellipsis: # <<<<<<<<<<<<<<
12147 : * idx += ndim - len(tup)
12148 : * seen_ellipsis = True
12149 : */
12150 : }
12151 :
12152 : /* "View.MemoryView":688
12153 : * idx += ndim - len(tup)
12154 : * seen_ellipsis = True
12155 : * have_slices = True # <<<<<<<<<<<<<<
12156 : * else:
12157 : * if isinstance(item, slice):
12158 : */
12159 0 : __pyx_v_have_slices = 1;
12160 :
12161 : /* "View.MemoryView":684
12162 : * idx = 0
12163 : * for item in tup:
12164 : * if item is Ellipsis: # <<<<<<<<<<<<<<
12165 : * if not seen_ellipsis:
12166 : * idx += ndim - len(tup)
12167 : */
12168 0 : goto __pyx_L5;
12169 : }
12170 :
12171 : /* "View.MemoryView":690
12172 : * have_slices = True
12173 : * else:
12174 : * if isinstance(item, slice): # <<<<<<<<<<<<<<
12175 : * have_slices = True
12176 : * elif not PyIndex_Check(item):
12177 : */
12178 : /*else*/ {
12179 0 : __pyx_t_2 = PySlice_Check(__pyx_v_item);
12180 0 : if (__pyx_t_2) {
12181 :
12182 : /* "View.MemoryView":691
12183 : * else:
12184 : * if isinstance(item, slice):
12185 : * have_slices = True # <<<<<<<<<<<<<<
12186 : * elif not PyIndex_Check(item):
12187 : * raise TypeError, f"Cannot index with type '{type(item)}'"
12188 : */
12189 0 : __pyx_v_have_slices = 1;
12190 :
12191 : /* "View.MemoryView":690
12192 : * have_slices = True
12193 : * else:
12194 : * if isinstance(item, slice): # <<<<<<<<<<<<<<
12195 : * have_slices = True
12196 : * elif not PyIndex_Check(item):
12197 : */
12198 0 : goto __pyx_L7;
12199 : }
12200 :
12201 : /* "View.MemoryView":692
12202 : * if isinstance(item, slice):
12203 : * have_slices = True
12204 : * elif not PyIndex_Check(item): # <<<<<<<<<<<<<<
12205 : * raise TypeError, f"Cannot index with type '{type(item)}'"
12206 : * result[idx] = item
12207 : */
12208 0 : __pyx_t_2 = (!(PyIndex_Check(__pyx_v_item) != 0));
12209 0 : if (unlikely(__pyx_t_2)) {
12210 :
12211 : /* "View.MemoryView":693
12212 : * have_slices = True
12213 : * elif not PyIndex_Check(item):
12214 : * raise TypeError, f"Cannot index with type '{type(item)}'" # <<<<<<<<<<<<<<
12215 : * result[idx] = item
12216 : * idx += 1
12217 : */
12218 0 : __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 693, __pyx_L1_error)
12219 0 : __Pyx_GOTREF(__pyx_t_3);
12220 0 : __pyx_t_5 = 0;
12221 0 : __pyx_t_6 = 127;
12222 0 : __Pyx_INCREF(__pyx_kp_u_Cannot_index_with_type);
12223 0 : __pyx_t_5 += 24;
12224 0 : __Pyx_GIVEREF(__pyx_kp_u_Cannot_index_with_type);
12225 0 : PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Cannot_index_with_type);
12226 0 : __pyx_t_7 = __Pyx_PyObject_FormatSimple(((PyObject *)Py_TYPE(__pyx_v_item)), __pyx_empty_unicode); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 693, __pyx_L1_error)
12227 0 : __Pyx_GOTREF(__pyx_t_7);
12228 0 : __pyx_t_6 = (__Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) > __pyx_t_6) ? __Pyx_PyUnicode_MAX_CHAR_VALUE(__pyx_t_7) : __pyx_t_6;
12229 0 : __pyx_t_5 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_7);
12230 0 : __Pyx_GIVEREF(__pyx_t_7);
12231 0 : PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
12232 0 : __pyx_t_7 = 0;
12233 0 : __Pyx_INCREF(__pyx_kp_u__6);
12234 0 : __pyx_t_5 += 1;
12235 0 : __Pyx_GIVEREF(__pyx_kp_u__6);
12236 0 : PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__6);
12237 0 : __pyx_t_7 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 693, __pyx_L1_error)
12238 0 : __Pyx_GOTREF(__pyx_t_7);
12239 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
12240 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_t_7, 0, 0);
12241 0 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
12242 0 : __PYX_ERR(1, 693, __pyx_L1_error)
12243 :
12244 : /* "View.MemoryView":692
12245 : * if isinstance(item, slice):
12246 : * have_slices = True
12247 : * elif not PyIndex_Check(item): # <<<<<<<<<<<<<<
12248 : * raise TypeError, f"Cannot index with type '{type(item)}'"
12249 : * result[idx] = item
12250 : */
12251 : }
12252 0 : __pyx_L7:;
12253 :
12254 : /* "View.MemoryView":694
12255 : * elif not PyIndex_Check(item):
12256 : * raise TypeError, f"Cannot index with type '{type(item)}'"
12257 : * result[idx] = item # <<<<<<<<<<<<<<
12258 : * idx += 1
12259 : *
12260 : */
12261 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_result, __pyx_v_idx, __pyx_v_item, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1) < 0))) __PYX_ERR(1, 694, __pyx_L1_error)
12262 : }
12263 0 : __pyx_L5:;
12264 :
12265 : /* "View.MemoryView":695
12266 : * raise TypeError, f"Cannot index with type '{type(item)}'"
12267 : * result[idx] = item
12268 : * idx += 1 # <<<<<<<<<<<<<<
12269 : *
12270 : * nslices = ndim - idx
12271 : */
12272 0 : __pyx_v_idx = (__pyx_v_idx + 1);
12273 :
12274 : /* "View.MemoryView":683
12275 : * seen_ellipsis = False
12276 : * idx = 0
12277 : * for item in tup: # <<<<<<<<<<<<<<
12278 : * if item is Ellipsis:
12279 : * if not seen_ellipsis:
12280 : */
12281 : }
12282 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12283 :
12284 : /* "View.MemoryView":697
12285 : * idx += 1
12286 : *
12287 : * nslices = ndim - idx # <<<<<<<<<<<<<<
12288 : * return have_slices or nslices, tuple(result)
12289 : *
12290 : */
12291 0 : __pyx_v_nslices = (__pyx_v_ndim - __pyx_v_idx);
12292 :
12293 : /* "View.MemoryView":698
12294 : *
12295 : * nslices = ndim - idx
12296 : * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<<
12297 : *
12298 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
12299 : */
12300 0 : __Pyx_XDECREF(__pyx_r);
12301 0 : if (!__pyx_v_have_slices) {
12302 0 : } else {
12303 0 : __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
12304 0 : __Pyx_GOTREF(__pyx_t_7);
12305 0 : __pyx_t_1 = __pyx_t_7;
12306 0 : __pyx_t_7 = 0;
12307 0 : goto __pyx_L9_bool_binop_done;
12308 : }
12309 0 : __pyx_t_7 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
12310 : __Pyx_GOTREF(__pyx_t_7);
12311 : __pyx_t_1 = __pyx_t_7;
12312 0 : __pyx_t_7 = 0;
12313 0 : __pyx_L9_bool_binop_done:;
12314 0 : __pyx_t_7 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error)
12315 0 : __Pyx_GOTREF(__pyx_t_7);
12316 0 : __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 698, __pyx_L1_error)
12317 0 : __Pyx_GOTREF(__pyx_t_3);
12318 0 : __Pyx_GIVEREF(__pyx_t_1);
12319 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(1, 698, __pyx_L1_error);
12320 0 : __Pyx_GIVEREF(__pyx_t_7);
12321 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(1, 698, __pyx_L1_error);
12322 0 : __pyx_t_1 = 0;
12323 0 : __pyx_t_7 = 0;
12324 0 : __pyx_r = ((PyObject*)__pyx_t_3);
12325 0 : __pyx_t_3 = 0;
12326 0 : goto __pyx_L0;
12327 :
12328 : /* "View.MemoryView":671
12329 : * return isinstance(o, memoryview)
12330 : *
12331 : * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<<
12332 : * """
12333 : * Replace all ellipses with full slices and fill incomplete indices with
12334 : */
12335 :
12336 : /* function exit code */
12337 0 : __pyx_L1_error:;
12338 0 : __Pyx_XDECREF(__pyx_t_1);
12339 0 : __Pyx_XDECREF(__pyx_t_3);
12340 0 : __Pyx_XDECREF(__pyx_t_7);
12341 0 : __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename);
12342 0 : __pyx_r = 0;
12343 0 : __pyx_L0:;
12344 0 : __Pyx_XDECREF(__pyx_v_tup);
12345 0 : __Pyx_XDECREF(__pyx_v_result);
12346 0 : __Pyx_XDECREF(__pyx_v_item);
12347 0 : __Pyx_XGIVEREF(__pyx_r);
12348 0 : __Pyx_RefNannyFinishContext();
12349 0 : return __pyx_r;
12350 : }
12351 :
12352 : /* "View.MemoryView":700
12353 : * return have_slices or nslices, tuple(result)
12354 : *
12355 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1: # <<<<<<<<<<<<<<
12356 : * for suboffset in suboffsets[:ndim]:
12357 : * if suboffset >= 0:
12358 : */
12359 :
12360 0 : static int assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) {
12361 0 : Py_ssize_t __pyx_v_suboffset;
12362 0 : int __pyx_r;
12363 0 : Py_ssize_t *__pyx_t_1;
12364 0 : Py_ssize_t *__pyx_t_2;
12365 0 : Py_ssize_t *__pyx_t_3;
12366 0 : int __pyx_t_4;
12367 0 : int __pyx_lineno = 0;
12368 0 : const char *__pyx_filename = NULL;
12369 0 : int __pyx_clineno = 0;
12370 :
12371 : /* "View.MemoryView":701
12372 : *
12373 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
12374 : * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<<
12375 : * if suboffset >= 0:
12376 : * raise ValueError, "Indirect dimensions not supported"
12377 : */
12378 0 : __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim);
12379 0 : for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) {
12380 0 : __pyx_t_1 = __pyx_t_3;
12381 0 : __pyx_v_suboffset = (__pyx_t_1[0]);
12382 :
12383 : /* "View.MemoryView":702
12384 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
12385 : * for suboffset in suboffsets[:ndim]:
12386 : * if suboffset >= 0: # <<<<<<<<<<<<<<
12387 : * raise ValueError, "Indirect dimensions not supported"
12388 : * return 0 # return type just used as an error flag
12389 : */
12390 0 : __pyx_t_4 = (__pyx_v_suboffset >= 0);
12391 0 : if (unlikely(__pyx_t_4)) {
12392 :
12393 : /* "View.MemoryView":703
12394 : * for suboffset in suboffsets[:ndim]:
12395 : * if suboffset >= 0:
12396 : * raise ValueError, "Indirect dimensions not supported" # <<<<<<<<<<<<<<
12397 : * return 0 # return type just used as an error flag
12398 : *
12399 : */
12400 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_kp_s_Indirect_dimensions_not_supporte, 0, 0);
12401 0 : __PYX_ERR(1, 703, __pyx_L1_error)
12402 :
12403 : /* "View.MemoryView":702
12404 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1:
12405 : * for suboffset in suboffsets[:ndim]:
12406 : * if suboffset >= 0: # <<<<<<<<<<<<<<
12407 : * raise ValueError, "Indirect dimensions not supported"
12408 : * return 0 # return type just used as an error flag
12409 : */
12410 : }
12411 : }
12412 :
12413 : /* "View.MemoryView":704
12414 : * if suboffset >= 0:
12415 : * raise ValueError, "Indirect dimensions not supported"
12416 : * return 0 # return type just used as an error flag # <<<<<<<<<<<<<<
12417 : *
12418 : *
12419 : */
12420 0 : __pyx_r = 0;
12421 0 : goto __pyx_L0;
12422 :
12423 : /* "View.MemoryView":700
12424 : * return have_slices or nslices, tuple(result)
12425 : *
12426 : * cdef int assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim) except -1: # <<<<<<<<<<<<<<
12427 : * for suboffset in suboffsets[:ndim]:
12428 : * if suboffset >= 0:
12429 : */
12430 :
12431 : /* function exit code */
12432 0 : __pyx_L1_error:;
12433 0 : __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename);
12434 0 : __pyx_r = -1;
12435 0 : __pyx_L0:;
12436 0 : return __pyx_r;
12437 : }
12438 :
12439 : /* "View.MemoryView":711
12440 : *
12441 : * @cname('__pyx_memview_slice')
12442 : * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<<
12443 : * cdef int new_ndim = 0, suboffset_dim = -1, dim
12444 : * cdef bint negative_step
12445 : */
12446 :
12447 0 : static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) {
12448 0 : int __pyx_v_new_ndim;
12449 0 : int __pyx_v_suboffset_dim;
12450 0 : int __pyx_v_dim;
12451 0 : __Pyx_memviewslice __pyx_v_src;
12452 0 : __Pyx_memviewslice __pyx_v_dst;
12453 0 : __Pyx_memviewslice *__pyx_v_p_src;
12454 0 : struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0;
12455 0 : __Pyx_memviewslice *__pyx_v_p_dst;
12456 0 : int *__pyx_v_p_suboffset_dim;
12457 0 : Py_ssize_t __pyx_v_start;
12458 0 : Py_ssize_t __pyx_v_stop;
12459 0 : Py_ssize_t __pyx_v_step;
12460 0 : Py_ssize_t __pyx_v_cindex;
12461 0 : int __pyx_v_have_start;
12462 0 : int __pyx_v_have_stop;
12463 0 : int __pyx_v_have_step;
12464 0 : PyObject *__pyx_v_index = NULL;
12465 0 : struct __pyx_memoryview_obj *__pyx_r = NULL;
12466 : __Pyx_RefNannyDeclarations
12467 0 : int __pyx_t_1;
12468 0 : PyObject *__pyx_t_2 = NULL;
12469 0 : struct __pyx_memoryview_obj *__pyx_t_3;
12470 0 : char *__pyx_t_4;
12471 0 : int __pyx_t_5;
12472 0 : Py_ssize_t __pyx_t_6;
12473 0 : PyObject *(*__pyx_t_7)(PyObject *);
12474 0 : PyObject *__pyx_t_8 = NULL;
12475 0 : Py_ssize_t __pyx_t_9;
12476 0 : int __pyx_t_10;
12477 0 : Py_ssize_t __pyx_t_11;
12478 0 : int __pyx_lineno = 0;
12479 0 : const char *__pyx_filename = NULL;
12480 0 : int __pyx_clineno = 0;
12481 0 : __Pyx_RefNannySetupContext("memview_slice", 1);
12482 :
12483 : /* "View.MemoryView":712
12484 : * @cname('__pyx_memview_slice')
12485 : * cdef memoryview memview_slice(memoryview memview, object indices):
12486 : * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<<
12487 : * cdef bint negative_step
12488 : * cdef __Pyx_memviewslice src, dst
12489 : */
12490 0 : __pyx_v_new_ndim = 0;
12491 0 : __pyx_v_suboffset_dim = -1;
12492 :
12493 : /* "View.MemoryView":719
12494 : *
12495 : *
12496 : * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<<
12497 : *
12498 : * cdef _memoryviewslice memviewsliceobj
12499 : */
12500 0 : (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst))));
12501 :
12502 : /* "View.MemoryView":723
12503 : * cdef _memoryviewslice memviewsliceobj
12504 : *
12505 : * assert memview.view.ndim > 0 # <<<<<<<<<<<<<<
12506 : *
12507 : * if isinstance(memview, _memoryviewslice):
12508 : */
12509 : #ifndef CYTHON_WITHOUT_ASSERTIONS
12510 0 : if (unlikely(__pyx_assertions_enabled())) {
12511 0 : __pyx_t_1 = (__pyx_v_memview->view.ndim > 0);
12512 0 : if (unlikely(!__pyx_t_1)) {
12513 0 : __Pyx_Raise(__pyx_builtin_AssertionError, 0, 0, 0);
12514 0 : __PYX_ERR(1, 723, __pyx_L1_error)
12515 : }
12516 : }
12517 : #else
12518 : if ((1)); else __PYX_ERR(1, 723, __pyx_L1_error)
12519 : #endif
12520 :
12521 : /* "View.MemoryView":725
12522 : * assert memview.view.ndim > 0
12523 : *
12524 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
12525 : * memviewsliceobj = memview
12526 : * p_src = &memviewsliceobj.from_slice
12527 : */
12528 0 : __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
12529 0 : if (__pyx_t_1) {
12530 :
12531 : /* "View.MemoryView":726
12532 : *
12533 : * if isinstance(memview, _memoryviewslice):
12534 : * memviewsliceobj = memview # <<<<<<<<<<<<<<
12535 : * p_src = &memviewsliceobj.from_slice
12536 : * else:
12537 : */
12538 0 : if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 726, __pyx_L1_error)
12539 0 : __pyx_t_2 = ((PyObject *)__pyx_v_memview);
12540 0 : __Pyx_INCREF(__pyx_t_2);
12541 0 : __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
12542 0 : __pyx_t_2 = 0;
12543 :
12544 : /* "View.MemoryView":727
12545 : * if isinstance(memview, _memoryviewslice):
12546 : * memviewsliceobj = memview
12547 : * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<<
12548 : * else:
12549 : * slice_copy(memview, &src)
12550 : */
12551 0 : __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice);
12552 :
12553 : /* "View.MemoryView":725
12554 : * assert memview.view.ndim > 0
12555 : *
12556 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
12557 : * memviewsliceobj = memview
12558 : * p_src = &memviewsliceobj.from_slice
12559 : */
12560 0 : goto __pyx_L3;
12561 : }
12562 :
12563 : /* "View.MemoryView":729
12564 : * p_src = &memviewsliceobj.from_slice
12565 : * else:
12566 : * slice_copy(memview, &src) # <<<<<<<<<<<<<<
12567 : * p_src = &src
12568 : *
12569 : */
12570 : /*else*/ {
12571 0 : __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src));
12572 :
12573 : /* "View.MemoryView":730
12574 : * else:
12575 : * slice_copy(memview, &src)
12576 : * p_src = &src # <<<<<<<<<<<<<<
12577 : *
12578 : *
12579 : */
12580 0 : __pyx_v_p_src = (&__pyx_v_src);
12581 : }
12582 0 : __pyx_L3:;
12583 :
12584 : /* "View.MemoryView":736
12585 : *
12586 : *
12587 : * dst.memview = p_src.memview # <<<<<<<<<<<<<<
12588 : * dst.data = p_src.data
12589 : *
12590 : */
12591 0 : __pyx_t_3 = __pyx_v_p_src->memview;
12592 0 : __pyx_v_dst.memview = __pyx_t_3;
12593 :
12594 : /* "View.MemoryView":737
12595 : *
12596 : * dst.memview = p_src.memview
12597 : * dst.data = p_src.data # <<<<<<<<<<<<<<
12598 : *
12599 : *
12600 : */
12601 0 : __pyx_t_4 = __pyx_v_p_src->data;
12602 0 : __pyx_v_dst.data = __pyx_t_4;
12603 :
12604 : /* "View.MemoryView":742
12605 : *
12606 : *
12607 : * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<<
12608 : * cdef int *p_suboffset_dim = &suboffset_dim
12609 : * cdef Py_ssize_t start, stop, step, cindex
12610 : */
12611 0 : __pyx_v_p_dst = (&__pyx_v_dst);
12612 :
12613 : /* "View.MemoryView":743
12614 : *
12615 : * cdef __Pyx_memviewslice *p_dst = &dst
12616 : * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<<
12617 : * cdef Py_ssize_t start, stop, step, cindex
12618 : * cdef bint have_start, have_stop, have_step
12619 : */
12620 0 : __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim);
12621 :
12622 : /* "View.MemoryView":747
12623 : * cdef bint have_start, have_stop, have_step
12624 : *
12625 : * for dim, index in enumerate(indices): # <<<<<<<<<<<<<<
12626 : * if PyIndex_Check(index):
12627 : * cindex = index
12628 : */
12629 0 : __pyx_t_5 = 0;
12630 0 : if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) {
12631 0 : __pyx_t_2 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_2);
12632 0 : __pyx_t_6 = 0;
12633 0 : __pyx_t_7 = NULL;
12634 : } else {
12635 0 : __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 747, __pyx_L1_error)
12636 0 : __Pyx_GOTREF(__pyx_t_2);
12637 0 : __pyx_t_7 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 747, __pyx_L1_error)
12638 : }
12639 0 : for (;;) {
12640 0 : if (likely(!__pyx_t_7)) {
12641 0 : if (likely(PyList_CheckExact(__pyx_t_2))) {
12642 : {
12643 0 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_2);
12644 : #if !CYTHON_ASSUME_SAFE_MACROS
12645 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
12646 : #endif
12647 0 : if (__pyx_t_6 >= __pyx_temp) break;
12648 : }
12649 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12650 0 : __pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
12651 : #else
12652 : __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 747, __pyx_L1_error)
12653 : __Pyx_GOTREF(__pyx_t_8);
12654 : #endif
12655 : } else {
12656 : {
12657 0 : Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_2);
12658 : #if !CYTHON_ASSUME_SAFE_MACROS
12659 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
12660 : #endif
12661 0 : if (__pyx_t_6 >= __pyx_temp) break;
12662 : }
12663 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
12664 0 : __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely((0 < 0))) __PYX_ERR(1, 747, __pyx_L1_error)
12665 : #else
12666 : __pyx_t_8 = __Pyx_PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 747, __pyx_L1_error)
12667 : __Pyx_GOTREF(__pyx_t_8);
12668 : #endif
12669 : }
12670 : } else {
12671 0 : __pyx_t_8 = __pyx_t_7(__pyx_t_2);
12672 0 : if (unlikely(!__pyx_t_8)) {
12673 0 : PyObject* exc_type = PyErr_Occurred();
12674 0 : if (exc_type) {
12675 0 : if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
12676 0 : else __PYX_ERR(1, 747, __pyx_L1_error)
12677 : }
12678 : break;
12679 : }
12680 0 : __Pyx_GOTREF(__pyx_t_8);
12681 : }
12682 0 : __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_8);
12683 0 : __pyx_t_8 = 0;
12684 0 : __pyx_v_dim = __pyx_t_5;
12685 0 : __pyx_t_5 = (__pyx_t_5 + 1);
12686 :
12687 : /* "View.MemoryView":748
12688 : *
12689 : * for dim, index in enumerate(indices):
12690 : * if PyIndex_Check(index): # <<<<<<<<<<<<<<
12691 : * cindex = index
12692 : * slice_memviewslice(
12693 : */
12694 0 : __pyx_t_1 = (PyIndex_Check(__pyx_v_index) != 0);
12695 0 : if (__pyx_t_1) {
12696 :
12697 : /* "View.MemoryView":749
12698 : * for dim, index in enumerate(indices):
12699 : * if PyIndex_Check(index):
12700 : * cindex = index # <<<<<<<<<<<<<<
12701 : * slice_memviewslice(
12702 : * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
12703 : */
12704 0 : __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 749, __pyx_L1_error)
12705 0 : __pyx_v_cindex = __pyx_t_9;
12706 :
12707 : /* "View.MemoryView":750
12708 : * if PyIndex_Check(index):
12709 : * cindex = index
12710 : * slice_memviewslice( # <<<<<<<<<<<<<<
12711 : * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
12712 : * dim, new_ndim, p_suboffset_dim,
12713 : */
12714 0 : __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_cindex, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 750, __pyx_L1_error)
12715 :
12716 : /* "View.MemoryView":748
12717 : *
12718 : * for dim, index in enumerate(indices):
12719 : * if PyIndex_Check(index): # <<<<<<<<<<<<<<
12720 : * cindex = index
12721 : * slice_memviewslice(
12722 : */
12723 0 : goto __pyx_L6;
12724 : }
12725 :
12726 : /* "View.MemoryView":756
12727 : * 0, 0, 0, # have_{start,stop,step}
12728 : * False)
12729 : * elif index is None: # <<<<<<<<<<<<<<
12730 : * p_dst.shape[new_ndim] = 1
12731 : * p_dst.strides[new_ndim] = 0
12732 : */
12733 0 : __pyx_t_1 = (__pyx_v_index == Py_None);
12734 0 : if (__pyx_t_1) {
12735 :
12736 : /* "View.MemoryView":757
12737 : * False)
12738 : * elif index is None:
12739 : * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<<
12740 : * p_dst.strides[new_ndim] = 0
12741 : * p_dst.suboffsets[new_ndim] = -1
12742 : */
12743 0 : (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1;
12744 :
12745 : /* "View.MemoryView":758
12746 : * elif index is None:
12747 : * p_dst.shape[new_ndim] = 1
12748 : * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<<
12749 : * p_dst.suboffsets[new_ndim] = -1
12750 : * new_ndim += 1
12751 : */
12752 0 : (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0;
12753 :
12754 : /* "View.MemoryView":759
12755 : * p_dst.shape[new_ndim] = 1
12756 : * p_dst.strides[new_ndim] = 0
12757 : * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<<
12758 : * new_ndim += 1
12759 : * else:
12760 : */
12761 0 : (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L;
12762 :
12763 : /* "View.MemoryView":760
12764 : * p_dst.strides[new_ndim] = 0
12765 : * p_dst.suboffsets[new_ndim] = -1
12766 : * new_ndim += 1 # <<<<<<<<<<<<<<
12767 : * else:
12768 : * start = index.start or 0
12769 : */
12770 0 : __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
12771 :
12772 : /* "View.MemoryView":756
12773 : * 0, 0, 0, # have_{start,stop,step}
12774 : * False)
12775 : * elif index is None: # <<<<<<<<<<<<<<
12776 : * p_dst.shape[new_ndim] = 1
12777 : * p_dst.strides[new_ndim] = 0
12778 : */
12779 0 : goto __pyx_L6;
12780 : }
12781 :
12782 : /* "View.MemoryView":762
12783 : * new_ndim += 1
12784 : * else:
12785 : * start = index.start or 0 # <<<<<<<<<<<<<<
12786 : * stop = index.stop or 0
12787 : * step = index.step or 0
12788 : */
12789 : /*else*/ {
12790 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 762, __pyx_L1_error)
12791 0 : __Pyx_GOTREF(__pyx_t_8);
12792 0 : __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 762, __pyx_L1_error)
12793 0 : if (!__pyx_t_1) {
12794 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12795 : } else {
12796 0 : __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 762, __pyx_L1_error)
12797 0 : __pyx_t_9 = __pyx_t_11;
12798 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12799 0 : goto __pyx_L7_bool_binop_done;
12800 : }
12801 : __pyx_t_9 = 0;
12802 0 : __pyx_L7_bool_binop_done:;
12803 0 : __pyx_v_start = __pyx_t_9;
12804 :
12805 : /* "View.MemoryView":763
12806 : * else:
12807 : * start = index.start or 0
12808 : * stop = index.stop or 0 # <<<<<<<<<<<<<<
12809 : * step = index.step or 0
12810 : *
12811 : */
12812 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 763, __pyx_L1_error)
12813 0 : __Pyx_GOTREF(__pyx_t_8);
12814 0 : __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 763, __pyx_L1_error)
12815 0 : if (!__pyx_t_1) {
12816 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12817 : } else {
12818 0 : __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 763, __pyx_L1_error)
12819 0 : __pyx_t_9 = __pyx_t_11;
12820 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12821 0 : goto __pyx_L9_bool_binop_done;
12822 : }
12823 : __pyx_t_9 = 0;
12824 0 : __pyx_L9_bool_binop_done:;
12825 0 : __pyx_v_stop = __pyx_t_9;
12826 :
12827 : /* "View.MemoryView":764
12828 : * start = index.start or 0
12829 : * stop = index.stop or 0
12830 : * step = index.step or 0 # <<<<<<<<<<<<<<
12831 : *
12832 : * have_start = index.start is not None
12833 : */
12834 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 764, __pyx_L1_error)
12835 0 : __Pyx_GOTREF(__pyx_t_8);
12836 0 : __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 764, __pyx_L1_error)
12837 0 : if (!__pyx_t_1) {
12838 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12839 : } else {
12840 0 : __pyx_t_11 = __Pyx_PyIndex_AsSsize_t(__pyx_t_8); if (unlikely((__pyx_t_11 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 764, __pyx_L1_error)
12841 0 : __pyx_t_9 = __pyx_t_11;
12842 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12843 0 : goto __pyx_L11_bool_binop_done;
12844 : }
12845 : __pyx_t_9 = 0;
12846 0 : __pyx_L11_bool_binop_done:;
12847 0 : __pyx_v_step = __pyx_t_9;
12848 :
12849 : /* "View.MemoryView":766
12850 : * step = index.step or 0
12851 : *
12852 : * have_start = index.start is not None # <<<<<<<<<<<<<<
12853 : * have_stop = index.stop is not None
12854 : * have_step = index.step is not None
12855 : */
12856 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 766, __pyx_L1_error)
12857 0 : __Pyx_GOTREF(__pyx_t_8);
12858 0 : __pyx_t_1 = (__pyx_t_8 != Py_None);
12859 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12860 0 : __pyx_v_have_start = __pyx_t_1;
12861 :
12862 : /* "View.MemoryView":767
12863 : *
12864 : * have_start = index.start is not None
12865 : * have_stop = index.stop is not None # <<<<<<<<<<<<<<
12866 : * have_step = index.step is not None
12867 : *
12868 : */
12869 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 767, __pyx_L1_error)
12870 0 : __Pyx_GOTREF(__pyx_t_8);
12871 0 : __pyx_t_1 = (__pyx_t_8 != Py_None);
12872 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12873 0 : __pyx_v_have_stop = __pyx_t_1;
12874 :
12875 : /* "View.MemoryView":768
12876 : * have_start = index.start is not None
12877 : * have_stop = index.stop is not None
12878 : * have_step = index.step is not None # <<<<<<<<<<<<<<
12879 : *
12880 : * slice_memviewslice(
12881 : */
12882 0 : __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 768, __pyx_L1_error)
12883 0 : __Pyx_GOTREF(__pyx_t_8);
12884 0 : __pyx_t_1 = (__pyx_t_8 != Py_None);
12885 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
12886 0 : __pyx_v_have_step = __pyx_t_1;
12887 :
12888 : /* "View.MemoryView":770
12889 : * have_step = index.step is not None
12890 : *
12891 : * slice_memviewslice( # <<<<<<<<<<<<<<
12892 : * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim],
12893 : * dim, new_ndim, p_suboffset_dim,
12894 : */
12895 0 : __pyx_t_10 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 770, __pyx_L1_error)
12896 :
12897 : /* "View.MemoryView":776
12898 : * have_start, have_stop, have_step,
12899 : * True)
12900 : * new_ndim += 1 # <<<<<<<<<<<<<<
12901 : *
12902 : * if isinstance(memview, _memoryviewslice):
12903 : */
12904 0 : __pyx_v_new_ndim = (__pyx_v_new_ndim + 1);
12905 : }
12906 0 : __pyx_L6:;
12907 :
12908 : /* "View.MemoryView":747
12909 : * cdef bint have_start, have_stop, have_step
12910 : *
12911 : * for dim, index in enumerate(indices): # <<<<<<<<<<<<<<
12912 : * if PyIndex_Check(index):
12913 : * cindex = index
12914 : */
12915 : }
12916 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
12917 :
12918 : /* "View.MemoryView":778
12919 : * new_ndim += 1
12920 : *
12921 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
12922 : * return memoryview_fromslice(dst, new_ndim,
12923 : * memviewsliceobj.to_object_func,
12924 : */
12925 0 : __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
12926 0 : if (__pyx_t_1) {
12927 :
12928 : /* "View.MemoryView":779
12929 : *
12930 : * if isinstance(memview, _memoryviewslice):
12931 : * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<<
12932 : * memviewsliceobj.to_object_func,
12933 : * memviewsliceobj.to_dtype_func,
12934 : */
12935 0 : __Pyx_XDECREF((PyObject *)__pyx_r);
12936 :
12937 : /* "View.MemoryView":780
12938 : * if isinstance(memview, _memoryviewslice):
12939 : * return memoryview_fromslice(dst, new_ndim,
12940 : * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<<
12941 : * memviewsliceobj.to_dtype_func,
12942 : * memview.dtype_is_object)
12943 : */
12944 0 : if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 780, __pyx_L1_error) }
12945 :
12946 : /* "View.MemoryView":781
12947 : * return memoryview_fromslice(dst, new_ndim,
12948 : * memviewsliceobj.to_object_func,
12949 : * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<<
12950 : * memview.dtype_is_object)
12951 : * else:
12952 : */
12953 0 : if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(1, 781, __pyx_L1_error) }
12954 :
12955 : /* "View.MemoryView":779
12956 : *
12957 : * if isinstance(memview, _memoryviewslice):
12958 : * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<<
12959 : * memviewsliceobj.to_object_func,
12960 : * memviewsliceobj.to_dtype_func,
12961 : */
12962 0 : __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 779, __pyx_L1_error)
12963 0 : __Pyx_GOTREF(__pyx_t_2);
12964 0 : if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(1, 779, __pyx_L1_error)
12965 0 : __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
12966 0 : __pyx_t_2 = 0;
12967 0 : goto __pyx_L0;
12968 :
12969 : /* "View.MemoryView":778
12970 : * new_ndim += 1
12971 : *
12972 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
12973 : * return memoryview_fromslice(dst, new_ndim,
12974 : * memviewsliceobj.to_object_func,
12975 : */
12976 : }
12977 :
12978 : /* "View.MemoryView":784
12979 : * memview.dtype_is_object)
12980 : * else:
12981 : * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<<
12982 : * memview.dtype_is_object)
12983 : *
12984 : */
12985 : /*else*/ {
12986 0 : __Pyx_XDECREF((PyObject *)__pyx_r);
12987 :
12988 : /* "View.MemoryView":785
12989 : * else:
12990 : * return memoryview_fromslice(dst, new_ndim, NULL, NULL,
12991 : * memview.dtype_is_object) # <<<<<<<<<<<<<<
12992 : *
12993 : *
12994 : */
12995 0 : __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 784, __pyx_L1_error)
12996 0 : __Pyx_GOTREF(__pyx_t_2);
12997 :
12998 : /* "View.MemoryView":784
12999 : * memview.dtype_is_object)
13000 : * else:
13001 : * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<<
13002 : * memview.dtype_is_object)
13003 : *
13004 : */
13005 0 : if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_memoryview_type))))) __PYX_ERR(1, 784, __pyx_L1_error)
13006 0 : __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_2);
13007 0 : __pyx_t_2 = 0;
13008 0 : goto __pyx_L0;
13009 : }
13010 :
13011 : /* "View.MemoryView":711
13012 : *
13013 : * @cname('__pyx_memview_slice')
13014 : * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<<
13015 : * cdef int new_ndim = 0, suboffset_dim = -1, dim
13016 : * cdef bint negative_step
13017 : */
13018 :
13019 : /* function exit code */
13020 0 : __pyx_L1_error:;
13021 0 : __Pyx_XDECREF(__pyx_t_2);
13022 0 : __Pyx_XDECREF(__pyx_t_8);
13023 0 : __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
13024 0 : __pyx_r = 0;
13025 0 : __pyx_L0:;
13026 0 : __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj);
13027 0 : __Pyx_XDECREF(__pyx_v_index);
13028 0 : __Pyx_XGIVEREF((PyObject *)__pyx_r);
13029 0 : __Pyx_RefNannyFinishContext();
13030 0 : return __pyx_r;
13031 : }
13032 :
13033 : /* "View.MemoryView":793
13034 : *
13035 : * @cname('__pyx_memoryview_slice_memviewslice')
13036 : * cdef int slice_memviewslice( # <<<<<<<<<<<<<<
13037 : * __Pyx_memviewslice *dst,
13038 : * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
13039 : */
13040 :
13041 0 : static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) {
13042 0 : Py_ssize_t __pyx_v_new_shape;
13043 0 : int __pyx_v_negative_step;
13044 0 : int __pyx_r;
13045 0 : int __pyx_t_1;
13046 0 : int __pyx_t_2;
13047 0 : int __pyx_t_3;
13048 0 : int __pyx_lineno = 0;
13049 0 : const char *__pyx_filename = NULL;
13050 0 : int __pyx_clineno = 0;
13051 : #ifdef WITH_THREAD
13052 0 : PyGILState_STATE __pyx_gilstate_save;
13053 : #endif
13054 :
13055 : /* "View.MemoryView":813
13056 : * cdef bint negative_step
13057 : *
13058 : * if not is_slice: # <<<<<<<<<<<<<<
13059 : *
13060 : * if start < 0:
13061 : */
13062 0 : __pyx_t_1 = (!__pyx_v_is_slice);
13063 0 : if (__pyx_t_1) {
13064 :
13065 : /* "View.MemoryView":815
13066 : * if not is_slice:
13067 : *
13068 : * if start < 0: # <<<<<<<<<<<<<<
13069 : * start += shape
13070 : * if not 0 <= start < shape:
13071 : */
13072 0 : __pyx_t_1 = (__pyx_v_start < 0);
13073 0 : if (__pyx_t_1) {
13074 :
13075 : /* "View.MemoryView":816
13076 : *
13077 : * if start < 0:
13078 : * start += shape # <<<<<<<<<<<<<<
13079 : * if not 0 <= start < shape:
13080 : * _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
13081 : */
13082 0 : __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
13083 :
13084 : /* "View.MemoryView":815
13085 : * if not is_slice:
13086 : *
13087 : * if start < 0: # <<<<<<<<<<<<<<
13088 : * start += shape
13089 : * if not 0 <= start < shape:
13090 : */
13091 : }
13092 :
13093 : /* "View.MemoryView":817
13094 : * if start < 0:
13095 : * start += shape
13096 : * if not 0 <= start < shape: # <<<<<<<<<<<<<<
13097 : * _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
13098 : * else:
13099 : */
13100 0 : __pyx_t_1 = (0 <= __pyx_v_start);
13101 0 : if (__pyx_t_1) {
13102 0 : __pyx_t_1 = (__pyx_v_start < __pyx_v_shape);
13103 : }
13104 0 : __pyx_t_2 = (!__pyx_t_1);
13105 0 : if (__pyx_t_2) {
13106 :
13107 : /* "View.MemoryView":818
13108 : * start += shape
13109 : * if not 0 <= start < shape:
13110 : * _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<<
13111 : * else:
13112 : *
13113 : */
13114 0 : __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 818, __pyx_L1_error)
13115 :
13116 : /* "View.MemoryView":817
13117 : * if start < 0:
13118 : * start += shape
13119 : * if not 0 <= start < shape: # <<<<<<<<<<<<<<
13120 : * _err_dim(PyExc_IndexError, "Index out of bounds (axis %d)", dim)
13121 : * else:
13122 : */
13123 : }
13124 :
13125 : /* "View.MemoryView":813
13126 : * cdef bint negative_step
13127 : *
13128 : * if not is_slice: # <<<<<<<<<<<<<<
13129 : *
13130 : * if start < 0:
13131 : */
13132 0 : goto __pyx_L3;
13133 : }
13134 :
13135 : /* "View.MemoryView":821
13136 : * else:
13137 : *
13138 : * if have_step: # <<<<<<<<<<<<<<
13139 : * negative_step = step < 0
13140 : * if step == 0:
13141 : */
13142 : /*else*/ {
13143 0 : __pyx_t_2 = (__pyx_v_have_step != 0);
13144 0 : if (__pyx_t_2) {
13145 :
13146 : /* "View.MemoryView":822
13147 : *
13148 : * if have_step:
13149 : * negative_step = step < 0 # <<<<<<<<<<<<<<
13150 : * if step == 0:
13151 : * _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
13152 : */
13153 0 : __pyx_v_negative_step = (__pyx_v_step < 0);
13154 :
13155 : /* "View.MemoryView":823
13156 : * if have_step:
13157 : * negative_step = step < 0
13158 : * if step == 0: # <<<<<<<<<<<<<<
13159 : * _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
13160 : * else:
13161 : */
13162 0 : __pyx_t_2 = (__pyx_v_step == 0);
13163 0 : if (__pyx_t_2) {
13164 :
13165 : /* "View.MemoryView":824
13166 : * negative_step = step < 0
13167 : * if step == 0:
13168 : * _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<<
13169 : * else:
13170 : * negative_step = False
13171 : */
13172 0 : __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 824, __pyx_L1_error)
13173 :
13174 : /* "View.MemoryView":823
13175 : * if have_step:
13176 : * negative_step = step < 0
13177 : * if step == 0: # <<<<<<<<<<<<<<
13178 : * _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
13179 : * else:
13180 : */
13181 : }
13182 :
13183 : /* "View.MemoryView":821
13184 : * else:
13185 : *
13186 : * if have_step: # <<<<<<<<<<<<<<
13187 : * negative_step = step < 0
13188 : * if step == 0:
13189 : */
13190 0 : goto __pyx_L6;
13191 : }
13192 :
13193 : /* "View.MemoryView":826
13194 : * _err_dim(PyExc_ValueError, "Step may not be zero (axis %d)", dim)
13195 : * else:
13196 : * negative_step = False # <<<<<<<<<<<<<<
13197 : * step = 1
13198 : *
13199 : */
13200 : /*else*/ {
13201 : __pyx_v_negative_step = 0;
13202 :
13203 : /* "View.MemoryView":827
13204 : * else:
13205 : * negative_step = False
13206 : * step = 1 # <<<<<<<<<<<<<<
13207 : *
13208 : *
13209 : */
13210 : __pyx_v_step = 1;
13211 : }
13212 0 : __pyx_L6:;
13213 :
13214 : /* "View.MemoryView":830
13215 : *
13216 : *
13217 : * if have_start: # <<<<<<<<<<<<<<
13218 : * if start < 0:
13219 : * start += shape
13220 : */
13221 0 : __pyx_t_2 = (__pyx_v_have_start != 0);
13222 0 : if (__pyx_t_2) {
13223 :
13224 : /* "View.MemoryView":831
13225 : *
13226 : * if have_start:
13227 : * if start < 0: # <<<<<<<<<<<<<<
13228 : * start += shape
13229 : * if start < 0:
13230 : */
13231 0 : __pyx_t_2 = (__pyx_v_start < 0);
13232 0 : if (__pyx_t_2) {
13233 :
13234 : /* "View.MemoryView":832
13235 : * if have_start:
13236 : * if start < 0:
13237 : * start += shape # <<<<<<<<<<<<<<
13238 : * if start < 0:
13239 : * start = 0
13240 : */
13241 0 : __pyx_v_start = (__pyx_v_start + __pyx_v_shape);
13242 :
13243 : /* "View.MemoryView":833
13244 : * if start < 0:
13245 : * start += shape
13246 : * if start < 0: # <<<<<<<<<<<<<<
13247 : * start = 0
13248 : * elif start >= shape:
13249 : */
13250 0 : __pyx_t_2 = (__pyx_v_start < 0);
13251 0 : if (__pyx_t_2) {
13252 :
13253 : /* "View.MemoryView":834
13254 : * start += shape
13255 : * if start < 0:
13256 : * start = 0 # <<<<<<<<<<<<<<
13257 : * elif start >= shape:
13258 : * if negative_step:
13259 : */
13260 : __pyx_v_start = 0;
13261 :
13262 : /* "View.MemoryView":833
13263 : * if start < 0:
13264 : * start += shape
13265 : * if start < 0: # <<<<<<<<<<<<<<
13266 : * start = 0
13267 : * elif start >= shape:
13268 : */
13269 : }
13270 :
13271 : /* "View.MemoryView":831
13272 : *
13273 : * if have_start:
13274 : * if start < 0: # <<<<<<<<<<<<<<
13275 : * start += shape
13276 : * if start < 0:
13277 : */
13278 0 : goto __pyx_L9;
13279 : }
13280 :
13281 : /* "View.MemoryView":835
13282 : * if start < 0:
13283 : * start = 0
13284 : * elif start >= shape: # <<<<<<<<<<<<<<
13285 : * if negative_step:
13286 : * start = shape - 1
13287 : */
13288 0 : __pyx_t_2 = (__pyx_v_start >= __pyx_v_shape);
13289 0 : if (__pyx_t_2) {
13290 :
13291 : /* "View.MemoryView":836
13292 : * start = 0
13293 : * elif start >= shape:
13294 : * if negative_step: # <<<<<<<<<<<<<<
13295 : * start = shape - 1
13296 : * else:
13297 : */
13298 0 : if (__pyx_v_negative_step) {
13299 :
13300 : /* "View.MemoryView":837
13301 : * elif start >= shape:
13302 : * if negative_step:
13303 : * start = shape - 1 # <<<<<<<<<<<<<<
13304 : * else:
13305 : * start = shape
13306 : */
13307 0 : __pyx_v_start = (__pyx_v_shape - 1);
13308 :
13309 : /* "View.MemoryView":836
13310 : * start = 0
13311 : * elif start >= shape:
13312 : * if negative_step: # <<<<<<<<<<<<<<
13313 : * start = shape - 1
13314 : * else:
13315 : */
13316 0 : goto __pyx_L11;
13317 : }
13318 :
13319 : /* "View.MemoryView":839
13320 : * start = shape - 1
13321 : * else:
13322 : * start = shape # <<<<<<<<<<<<<<
13323 : * else:
13324 : * if negative_step:
13325 : */
13326 : /*else*/ {
13327 : __pyx_v_start = __pyx_v_shape;
13328 : }
13329 0 : __pyx_L11:;
13330 :
13331 : /* "View.MemoryView":835
13332 : * if start < 0:
13333 : * start = 0
13334 : * elif start >= shape: # <<<<<<<<<<<<<<
13335 : * if negative_step:
13336 : * start = shape - 1
13337 : */
13338 : }
13339 0 : __pyx_L9:;
13340 :
13341 : /* "View.MemoryView":830
13342 : *
13343 : *
13344 : * if have_start: # <<<<<<<<<<<<<<
13345 : * if start < 0:
13346 : * start += shape
13347 : */
13348 0 : goto __pyx_L8;
13349 : }
13350 :
13351 : /* "View.MemoryView":841
13352 : * start = shape
13353 : * else:
13354 : * if negative_step: # <<<<<<<<<<<<<<
13355 : * start = shape - 1
13356 : * else:
13357 : */
13358 : /*else*/ {
13359 0 : if (__pyx_v_negative_step) {
13360 :
13361 : /* "View.MemoryView":842
13362 : * else:
13363 : * if negative_step:
13364 : * start = shape - 1 # <<<<<<<<<<<<<<
13365 : * else:
13366 : * start = 0
13367 : */
13368 0 : __pyx_v_start = (__pyx_v_shape - 1);
13369 :
13370 : /* "View.MemoryView":841
13371 : * start = shape
13372 : * else:
13373 : * if negative_step: # <<<<<<<<<<<<<<
13374 : * start = shape - 1
13375 : * else:
13376 : */
13377 0 : goto __pyx_L12;
13378 : }
13379 :
13380 : /* "View.MemoryView":844
13381 : * start = shape - 1
13382 : * else:
13383 : * start = 0 # <<<<<<<<<<<<<<
13384 : *
13385 : * if have_stop:
13386 : */
13387 : /*else*/ {
13388 : __pyx_v_start = 0;
13389 : }
13390 0 : __pyx_L12:;
13391 : }
13392 0 : __pyx_L8:;
13393 :
13394 : /* "View.MemoryView":846
13395 : * start = 0
13396 : *
13397 : * if have_stop: # <<<<<<<<<<<<<<
13398 : * if stop < 0:
13399 : * stop += shape
13400 : */
13401 0 : __pyx_t_2 = (__pyx_v_have_stop != 0);
13402 0 : if (__pyx_t_2) {
13403 :
13404 : /* "View.MemoryView":847
13405 : *
13406 : * if have_stop:
13407 : * if stop < 0: # <<<<<<<<<<<<<<
13408 : * stop += shape
13409 : * if stop < 0:
13410 : */
13411 0 : __pyx_t_2 = (__pyx_v_stop < 0);
13412 0 : if (__pyx_t_2) {
13413 :
13414 : /* "View.MemoryView":848
13415 : * if have_stop:
13416 : * if stop < 0:
13417 : * stop += shape # <<<<<<<<<<<<<<
13418 : * if stop < 0:
13419 : * stop = 0
13420 : */
13421 0 : __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape);
13422 :
13423 : /* "View.MemoryView":849
13424 : * if stop < 0:
13425 : * stop += shape
13426 : * if stop < 0: # <<<<<<<<<<<<<<
13427 : * stop = 0
13428 : * elif stop > shape:
13429 : */
13430 0 : __pyx_t_2 = (__pyx_v_stop < 0);
13431 0 : if (__pyx_t_2) {
13432 :
13433 : /* "View.MemoryView":850
13434 : * stop += shape
13435 : * if stop < 0:
13436 : * stop = 0 # <<<<<<<<<<<<<<
13437 : * elif stop > shape:
13438 : * stop = shape
13439 : */
13440 : __pyx_v_stop = 0;
13441 :
13442 : /* "View.MemoryView":849
13443 : * if stop < 0:
13444 : * stop += shape
13445 : * if stop < 0: # <<<<<<<<<<<<<<
13446 : * stop = 0
13447 : * elif stop > shape:
13448 : */
13449 : }
13450 :
13451 : /* "View.MemoryView":847
13452 : *
13453 : * if have_stop:
13454 : * if stop < 0: # <<<<<<<<<<<<<<
13455 : * stop += shape
13456 : * if stop < 0:
13457 : */
13458 0 : goto __pyx_L14;
13459 : }
13460 :
13461 : /* "View.MemoryView":851
13462 : * if stop < 0:
13463 : * stop = 0
13464 : * elif stop > shape: # <<<<<<<<<<<<<<
13465 : * stop = shape
13466 : * else:
13467 : */
13468 0 : __pyx_t_2 = (__pyx_v_stop > __pyx_v_shape);
13469 0 : if (__pyx_t_2) {
13470 :
13471 : /* "View.MemoryView":852
13472 : * stop = 0
13473 : * elif stop > shape:
13474 : * stop = shape # <<<<<<<<<<<<<<
13475 : * else:
13476 : * if negative_step:
13477 : */
13478 : __pyx_v_stop = __pyx_v_shape;
13479 :
13480 : /* "View.MemoryView":851
13481 : * if stop < 0:
13482 : * stop = 0
13483 : * elif stop > shape: # <<<<<<<<<<<<<<
13484 : * stop = shape
13485 : * else:
13486 : */
13487 : }
13488 0 : __pyx_L14:;
13489 :
13490 : /* "View.MemoryView":846
13491 : * start = 0
13492 : *
13493 : * if have_stop: # <<<<<<<<<<<<<<
13494 : * if stop < 0:
13495 : * stop += shape
13496 : */
13497 0 : goto __pyx_L13;
13498 : }
13499 :
13500 : /* "View.MemoryView":854
13501 : * stop = shape
13502 : * else:
13503 : * if negative_step: # <<<<<<<<<<<<<<
13504 : * stop = -1
13505 : * else:
13506 : */
13507 : /*else*/ {
13508 0 : if (__pyx_v_negative_step) {
13509 :
13510 : /* "View.MemoryView":855
13511 : * else:
13512 : * if negative_step:
13513 : * stop = -1 # <<<<<<<<<<<<<<
13514 : * else:
13515 : * stop = shape
13516 : */
13517 0 : __pyx_v_stop = -1L;
13518 :
13519 : /* "View.MemoryView":854
13520 : * stop = shape
13521 : * else:
13522 : * if negative_step: # <<<<<<<<<<<<<<
13523 : * stop = -1
13524 : * else:
13525 : */
13526 0 : goto __pyx_L16;
13527 : }
13528 :
13529 : /* "View.MemoryView":857
13530 : * stop = -1
13531 : * else:
13532 : * stop = shape # <<<<<<<<<<<<<<
13533 : *
13534 : *
13535 : */
13536 : /*else*/ {
13537 : __pyx_v_stop = __pyx_v_shape;
13538 : }
13539 0 : __pyx_L16:;
13540 : }
13541 0 : __pyx_L13:;
13542 :
13543 : /* "View.MemoryView":861
13544 : *
13545 : * with cython.cdivision(True):
13546 : * new_shape = (stop - start) // step # <<<<<<<<<<<<<<
13547 : *
13548 : * if (stop - start) - step * new_shape:
13549 : */
13550 0 : __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step);
13551 :
13552 : /* "View.MemoryView":863
13553 : * new_shape = (stop - start) // step
13554 : *
13555 : * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<<
13556 : * new_shape += 1
13557 : *
13558 : */
13559 0 : __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0);
13560 0 : if (__pyx_t_2) {
13561 :
13562 : /* "View.MemoryView":864
13563 : *
13564 : * if (stop - start) - step * new_shape:
13565 : * new_shape += 1 # <<<<<<<<<<<<<<
13566 : *
13567 : * if new_shape < 0:
13568 : */
13569 0 : __pyx_v_new_shape = (__pyx_v_new_shape + 1);
13570 :
13571 : /* "View.MemoryView":863
13572 : * new_shape = (stop - start) // step
13573 : *
13574 : * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<<
13575 : * new_shape += 1
13576 : *
13577 : */
13578 : }
13579 :
13580 : /* "View.MemoryView":866
13581 : * new_shape += 1
13582 : *
13583 : * if new_shape < 0: # <<<<<<<<<<<<<<
13584 : * new_shape = 0
13585 : *
13586 : */
13587 0 : __pyx_t_2 = (__pyx_v_new_shape < 0);
13588 0 : if (__pyx_t_2) {
13589 :
13590 : /* "View.MemoryView":867
13591 : *
13592 : * if new_shape < 0:
13593 : * new_shape = 0 # <<<<<<<<<<<<<<
13594 : *
13595 : *
13596 : */
13597 : __pyx_v_new_shape = 0;
13598 :
13599 : /* "View.MemoryView":866
13600 : * new_shape += 1
13601 : *
13602 : * if new_shape < 0: # <<<<<<<<<<<<<<
13603 : * new_shape = 0
13604 : *
13605 : */
13606 : }
13607 :
13608 : /* "View.MemoryView":870
13609 : *
13610 : *
13611 : * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<<
13612 : * dst.shape[new_ndim] = new_shape
13613 : * dst.suboffsets[new_ndim] = suboffset
13614 : */
13615 0 : (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step);
13616 :
13617 : /* "View.MemoryView":871
13618 : *
13619 : * dst.strides[new_ndim] = stride * step
13620 : * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<<
13621 : * dst.suboffsets[new_ndim] = suboffset
13622 : *
13623 : */
13624 0 : (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape;
13625 :
13626 : /* "View.MemoryView":872
13627 : * dst.strides[new_ndim] = stride * step
13628 : * dst.shape[new_ndim] = new_shape
13629 : * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<<
13630 : *
13631 : *
13632 : */
13633 0 : (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset;
13634 : }
13635 0 : __pyx_L3:;
13636 :
13637 : /* "View.MemoryView":875
13638 : *
13639 : *
13640 : * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<<
13641 : * dst.data += start * stride
13642 : * else:
13643 : */
13644 0 : __pyx_t_2 = ((__pyx_v_suboffset_dim[0]) < 0);
13645 0 : if (__pyx_t_2) {
13646 :
13647 : /* "View.MemoryView":876
13648 : *
13649 : * if suboffset_dim[0] < 0:
13650 : * dst.data += start * stride # <<<<<<<<<<<<<<
13651 : * else:
13652 : * dst.suboffsets[suboffset_dim[0]] += start * stride
13653 : */
13654 0 : __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride));
13655 :
13656 : /* "View.MemoryView":875
13657 : *
13658 : *
13659 : * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<<
13660 : * dst.data += start * stride
13661 : * else:
13662 : */
13663 0 : goto __pyx_L19;
13664 : }
13665 :
13666 : /* "View.MemoryView":878
13667 : * dst.data += start * stride
13668 : * else:
13669 : * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<<
13670 : *
13671 : * if suboffset >= 0:
13672 : */
13673 : /*else*/ {
13674 0 : __pyx_t_3 = (__pyx_v_suboffset_dim[0]);
13675 0 : (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride));
13676 : }
13677 0 : __pyx_L19:;
13678 :
13679 : /* "View.MemoryView":880
13680 : * dst.suboffsets[suboffset_dim[0]] += start * stride
13681 : *
13682 : * if suboffset >= 0: # <<<<<<<<<<<<<<
13683 : * if not is_slice:
13684 : * if new_ndim == 0:
13685 : */
13686 0 : __pyx_t_2 = (__pyx_v_suboffset >= 0);
13687 0 : if (__pyx_t_2) {
13688 :
13689 : /* "View.MemoryView":881
13690 : *
13691 : * if suboffset >= 0:
13692 : * if not is_slice: # <<<<<<<<<<<<<<
13693 : * if new_ndim == 0:
13694 : * dst.data = (<char **> dst.data)[0] + suboffset
13695 : */
13696 0 : __pyx_t_2 = (!__pyx_v_is_slice);
13697 0 : if (__pyx_t_2) {
13698 :
13699 : /* "View.MemoryView":882
13700 : * if suboffset >= 0:
13701 : * if not is_slice:
13702 : * if new_ndim == 0: # <<<<<<<<<<<<<<
13703 : * dst.data = (<char **> dst.data)[0] + suboffset
13704 : * else:
13705 : */
13706 0 : __pyx_t_2 = (__pyx_v_new_ndim == 0);
13707 0 : if (__pyx_t_2) {
13708 :
13709 : /* "View.MemoryView":883
13710 : * if not is_slice:
13711 : * if new_ndim == 0:
13712 : * dst.data = (<char **> dst.data)[0] + suboffset # <<<<<<<<<<<<<<
13713 : * else:
13714 : * _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
13715 : */
13716 0 : __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset);
13717 :
13718 : /* "View.MemoryView":882
13719 : * if suboffset >= 0:
13720 : * if not is_slice:
13721 : * if new_ndim == 0: # <<<<<<<<<<<<<<
13722 : * dst.data = (<char **> dst.data)[0] + suboffset
13723 : * else:
13724 : */
13725 0 : goto __pyx_L22;
13726 : }
13727 :
13728 : /* "View.MemoryView":885
13729 : * dst.data = (<char **> dst.data)[0] + suboffset
13730 : * else:
13731 : * _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<<
13732 : * "must be indexed and not sliced", dim)
13733 : * else:
13734 : */
13735 : /*else*/ {
13736 :
13737 : /* "View.MemoryView":886
13738 : * else:
13739 : * _err_dim(PyExc_IndexError, "All dimensions preceding dimension %d "
13740 : * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<<
13741 : * else:
13742 : * suboffset_dim[0] = new_ndim
13743 : */
13744 0 : __pyx_t_3 = __pyx_memoryview_err_dim(PyExc_IndexError, __pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 885, __pyx_L1_error)
13745 : }
13746 0 : __pyx_L22:;
13747 :
13748 : /* "View.MemoryView":881
13749 : *
13750 : * if suboffset >= 0:
13751 : * if not is_slice: # <<<<<<<<<<<<<<
13752 : * if new_ndim == 0:
13753 : * dst.data = (<char **> dst.data)[0] + suboffset
13754 : */
13755 0 : goto __pyx_L21;
13756 : }
13757 :
13758 : /* "View.MemoryView":888
13759 : * "must be indexed and not sliced", dim)
13760 : * else:
13761 : * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<<
13762 : *
13763 : * return 0
13764 : */
13765 : /*else*/ {
13766 0 : (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim;
13767 : }
13768 0 : __pyx_L21:;
13769 :
13770 : /* "View.MemoryView":880
13771 : * dst.suboffsets[suboffset_dim[0]] += start * stride
13772 : *
13773 : * if suboffset >= 0: # <<<<<<<<<<<<<<
13774 : * if not is_slice:
13775 : * if new_ndim == 0:
13776 : */
13777 : }
13778 :
13779 : /* "View.MemoryView":890
13780 : * suboffset_dim[0] = new_ndim
13781 : *
13782 : * return 0 # <<<<<<<<<<<<<<
13783 : *
13784 : *
13785 : */
13786 0 : __pyx_r = 0;
13787 0 : goto __pyx_L0;
13788 :
13789 : /* "View.MemoryView":793
13790 : *
13791 : * @cname('__pyx_memoryview_slice_memviewslice')
13792 : * cdef int slice_memviewslice( # <<<<<<<<<<<<<<
13793 : * __Pyx_memviewslice *dst,
13794 : * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset,
13795 : */
13796 :
13797 : /* function exit code */
13798 0 : __pyx_L1_error:;
13799 : #ifdef WITH_THREAD
13800 0 : __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
13801 : #endif
13802 0 : __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
13803 0 : __pyx_r = -1;
13804 : #ifdef WITH_THREAD
13805 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
13806 : #endif
13807 0 : __pyx_L0:;
13808 0 : return __pyx_r;
13809 : }
13810 :
13811 : /* "View.MemoryView":896
13812 : *
13813 : * @cname('__pyx_pybuffer_index')
13814 : * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<<
13815 : * Py_ssize_t dim) except NULL:
13816 : * cdef Py_ssize_t shape, stride, suboffset = -1
13817 : */
13818 :
13819 0 : static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) {
13820 0 : Py_ssize_t __pyx_v_shape;
13821 0 : Py_ssize_t __pyx_v_stride;
13822 0 : Py_ssize_t __pyx_v_suboffset;
13823 0 : Py_ssize_t __pyx_v_itemsize;
13824 0 : char *__pyx_v_resultp;
13825 0 : char *__pyx_r;
13826 : __Pyx_RefNannyDeclarations
13827 0 : Py_ssize_t __pyx_t_1;
13828 0 : int __pyx_t_2;
13829 0 : PyObject *__pyx_t_3 = NULL;
13830 0 : Py_UCS4 __pyx_t_4;
13831 0 : PyObject *__pyx_t_5 = NULL;
13832 0 : int __pyx_lineno = 0;
13833 0 : const char *__pyx_filename = NULL;
13834 0 : int __pyx_clineno = 0;
13835 0 : __Pyx_RefNannySetupContext("pybuffer_index", 1);
13836 :
13837 : /* "View.MemoryView":898
13838 : * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index,
13839 : * Py_ssize_t dim) except NULL:
13840 : * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<<
13841 : * cdef Py_ssize_t itemsize = view.itemsize
13842 : * cdef char *resultp
13843 : */
13844 0 : __pyx_v_suboffset = -1L;
13845 :
13846 : /* "View.MemoryView":899
13847 : * Py_ssize_t dim) except NULL:
13848 : * cdef Py_ssize_t shape, stride, suboffset = -1
13849 : * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<<
13850 : * cdef char *resultp
13851 : *
13852 : */
13853 0 : __pyx_t_1 = __pyx_v_view->itemsize;
13854 0 : __pyx_v_itemsize = __pyx_t_1;
13855 :
13856 : /* "View.MemoryView":902
13857 : * cdef char *resultp
13858 : *
13859 : * if view.ndim == 0: # <<<<<<<<<<<<<<
13860 : * shape = view.len // itemsize
13861 : * stride = itemsize
13862 : */
13863 0 : __pyx_t_2 = (__pyx_v_view->ndim == 0);
13864 0 : if (__pyx_t_2) {
13865 :
13866 : /* "View.MemoryView":903
13867 : *
13868 : * if view.ndim == 0:
13869 : * shape = view.len // itemsize # <<<<<<<<<<<<<<
13870 : * stride = itemsize
13871 : * else:
13872 : */
13873 0 : if (unlikely(__pyx_v_itemsize == 0)) {
13874 0 : PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero");
13875 0 : __PYX_ERR(1, 903, __pyx_L1_error)
13876 : }
13877 0 : else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(__Pyx_UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) {
13878 0 : PyErr_SetString(PyExc_OverflowError, "value too large to perform division");
13879 0 : __PYX_ERR(1, 903, __pyx_L1_error)
13880 : }
13881 0 : __pyx_v_shape = __Pyx_div_Py_ssize_t(__pyx_v_view->len, __pyx_v_itemsize);
13882 :
13883 : /* "View.MemoryView":904
13884 : * if view.ndim == 0:
13885 : * shape = view.len // itemsize
13886 : * stride = itemsize # <<<<<<<<<<<<<<
13887 : * else:
13888 : * shape = view.shape[dim]
13889 : */
13890 0 : __pyx_v_stride = __pyx_v_itemsize;
13891 :
13892 : /* "View.MemoryView":902
13893 : * cdef char *resultp
13894 : *
13895 : * if view.ndim == 0: # <<<<<<<<<<<<<<
13896 : * shape = view.len // itemsize
13897 : * stride = itemsize
13898 : */
13899 0 : goto __pyx_L3;
13900 : }
13901 :
13902 : /* "View.MemoryView":906
13903 : * stride = itemsize
13904 : * else:
13905 : * shape = view.shape[dim] # <<<<<<<<<<<<<<
13906 : * stride = view.strides[dim]
13907 : * if view.suboffsets != NULL:
13908 : */
13909 : /*else*/ {
13910 0 : __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]);
13911 :
13912 : /* "View.MemoryView":907
13913 : * else:
13914 : * shape = view.shape[dim]
13915 : * stride = view.strides[dim] # <<<<<<<<<<<<<<
13916 : * if view.suboffsets != NULL:
13917 : * suboffset = view.suboffsets[dim]
13918 : */
13919 0 : __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]);
13920 :
13921 : /* "View.MemoryView":908
13922 : * shape = view.shape[dim]
13923 : * stride = view.strides[dim]
13924 : * if view.suboffsets != NULL: # <<<<<<<<<<<<<<
13925 : * suboffset = view.suboffsets[dim]
13926 : *
13927 : */
13928 0 : __pyx_t_2 = (__pyx_v_view->suboffsets != NULL);
13929 0 : if (__pyx_t_2) {
13930 :
13931 : /* "View.MemoryView":909
13932 : * stride = view.strides[dim]
13933 : * if view.suboffsets != NULL:
13934 : * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<<
13935 : *
13936 : * if index < 0:
13937 : */
13938 0 : __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]);
13939 :
13940 : /* "View.MemoryView":908
13941 : * shape = view.shape[dim]
13942 : * stride = view.strides[dim]
13943 : * if view.suboffsets != NULL: # <<<<<<<<<<<<<<
13944 : * suboffset = view.suboffsets[dim]
13945 : *
13946 : */
13947 : }
13948 : }
13949 0 : __pyx_L3:;
13950 :
13951 : /* "View.MemoryView":911
13952 : * suboffset = view.suboffsets[dim]
13953 : *
13954 : * if index < 0: # <<<<<<<<<<<<<<
13955 : * index += view.shape[dim]
13956 : * if index < 0:
13957 : */
13958 0 : __pyx_t_2 = (__pyx_v_index < 0);
13959 0 : if (__pyx_t_2) {
13960 :
13961 : /* "View.MemoryView":912
13962 : *
13963 : * if index < 0:
13964 : * index += view.shape[dim] # <<<<<<<<<<<<<<
13965 : * if index < 0:
13966 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
13967 : */
13968 0 : __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim]));
13969 :
13970 : /* "View.MemoryView":913
13971 : * if index < 0:
13972 : * index += view.shape[dim]
13973 : * if index < 0: # <<<<<<<<<<<<<<
13974 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
13975 : *
13976 : */
13977 0 : __pyx_t_2 = (__pyx_v_index < 0);
13978 0 : if (unlikely(__pyx_t_2)) {
13979 :
13980 : /* "View.MemoryView":914
13981 : * index += view.shape[dim]
13982 : * if index < 0:
13983 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})" # <<<<<<<<<<<<<<
13984 : *
13985 : * if index >= shape:
13986 : */
13987 0 : __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 914, __pyx_L1_error)
13988 0 : __Pyx_GOTREF(__pyx_t_3);
13989 0 : __pyx_t_1 = 0;
13990 0 : __pyx_t_4 = 127;
13991 0 : __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
13992 0 : __pyx_t_1 += 37;
13993 0 : __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
13994 0 : PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
13995 0 : __pyx_t_5 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 914, __pyx_L1_error)
13996 0 : __Pyx_GOTREF(__pyx_t_5);
13997 0 : __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_5);
13998 0 : __Pyx_GIVEREF(__pyx_t_5);
13999 0 : PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
14000 0 : __pyx_t_5 = 0;
14001 0 : __Pyx_INCREF(__pyx_kp_u__7);
14002 0 : __pyx_t_1 += 1;
14003 0 : __Pyx_GIVEREF(__pyx_kp_u__7);
14004 0 : PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_kp_u__7);
14005 0 : __pyx_t_5 = __Pyx_PyUnicode_Join(__pyx_t_3, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 914, __pyx_L1_error)
14006 0 : __Pyx_GOTREF(__pyx_t_5);
14007 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14008 0 : __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_5, 0, 0);
14009 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14010 0 : __PYX_ERR(1, 914, __pyx_L1_error)
14011 :
14012 : /* "View.MemoryView":913
14013 : * if index < 0:
14014 : * index += view.shape[dim]
14015 : * if index < 0: # <<<<<<<<<<<<<<
14016 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14017 : *
14018 : */
14019 : }
14020 :
14021 : /* "View.MemoryView":911
14022 : * suboffset = view.suboffsets[dim]
14023 : *
14024 : * if index < 0: # <<<<<<<<<<<<<<
14025 : * index += view.shape[dim]
14026 : * if index < 0:
14027 : */
14028 : }
14029 :
14030 : /* "View.MemoryView":916
14031 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14032 : *
14033 : * if index >= shape: # <<<<<<<<<<<<<<
14034 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14035 : *
14036 : */
14037 0 : __pyx_t_2 = (__pyx_v_index >= __pyx_v_shape);
14038 0 : if (unlikely(__pyx_t_2)) {
14039 :
14040 : /* "View.MemoryView":917
14041 : *
14042 : * if index >= shape:
14043 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})" # <<<<<<<<<<<<<<
14044 : *
14045 : * resultp = bufp + index * stride
14046 : */
14047 0 : __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 917, __pyx_L1_error)
14048 0 : __Pyx_GOTREF(__pyx_t_5);
14049 0 : __pyx_t_1 = 0;
14050 0 : __pyx_t_4 = 127;
14051 0 : __Pyx_INCREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
14052 0 : __pyx_t_1 += 37;
14053 0 : __Pyx_GIVEREF(__pyx_kp_u_Out_of_bounds_on_buffer_access_a);
14054 0 : PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_kp_u_Out_of_bounds_on_buffer_access_a);
14055 0 : __pyx_t_3 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_dim, 0, ' ', 'd'); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 917, __pyx_L1_error)
14056 0 : __Pyx_GOTREF(__pyx_t_3);
14057 0 : __pyx_t_1 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_3);
14058 0 : __Pyx_GIVEREF(__pyx_t_3);
14059 0 : PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
14060 0 : __pyx_t_3 = 0;
14061 0 : __Pyx_INCREF(__pyx_kp_u__7);
14062 0 : __pyx_t_1 += 1;
14063 0 : __Pyx_GIVEREF(__pyx_kp_u__7);
14064 0 : PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_kp_u__7);
14065 0 : __pyx_t_3 = __Pyx_PyUnicode_Join(__pyx_t_5, 3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 917, __pyx_L1_error)
14066 0 : __Pyx_GOTREF(__pyx_t_3);
14067 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
14068 0 : __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_3, 0, 0);
14069 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14070 0 : __PYX_ERR(1, 917, __pyx_L1_error)
14071 :
14072 : /* "View.MemoryView":916
14073 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14074 : *
14075 : * if index >= shape: # <<<<<<<<<<<<<<
14076 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14077 : *
14078 : */
14079 : }
14080 :
14081 : /* "View.MemoryView":919
14082 : * raise IndexError, f"Out of bounds on buffer access (axis {dim})"
14083 : *
14084 : * resultp = bufp + index * stride # <<<<<<<<<<<<<<
14085 : * if suboffset >= 0:
14086 : * resultp = (<char **> resultp)[0] + suboffset
14087 : */
14088 0 : __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride));
14089 :
14090 : /* "View.MemoryView":920
14091 : *
14092 : * resultp = bufp + index * stride
14093 : * if suboffset >= 0: # <<<<<<<<<<<<<<
14094 : * resultp = (<char **> resultp)[0] + suboffset
14095 : *
14096 : */
14097 0 : __pyx_t_2 = (__pyx_v_suboffset >= 0);
14098 0 : if (__pyx_t_2) {
14099 :
14100 : /* "View.MemoryView":921
14101 : * resultp = bufp + index * stride
14102 : * if suboffset >= 0:
14103 : * resultp = (<char **> resultp)[0] + suboffset # <<<<<<<<<<<<<<
14104 : *
14105 : * return resultp
14106 : */
14107 0 : __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset);
14108 :
14109 : /* "View.MemoryView":920
14110 : *
14111 : * resultp = bufp + index * stride
14112 : * if suboffset >= 0: # <<<<<<<<<<<<<<
14113 : * resultp = (<char **> resultp)[0] + suboffset
14114 : *
14115 : */
14116 : }
14117 :
14118 : /* "View.MemoryView":923
14119 : * resultp = (<char **> resultp)[0] + suboffset
14120 : *
14121 : * return resultp # <<<<<<<<<<<<<<
14122 : *
14123 : *
14124 : */
14125 0 : __pyx_r = __pyx_v_resultp;
14126 0 : goto __pyx_L0;
14127 :
14128 : /* "View.MemoryView":896
14129 : *
14130 : * @cname('__pyx_pybuffer_index')
14131 : * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<<
14132 : * Py_ssize_t dim) except NULL:
14133 : * cdef Py_ssize_t shape, stride, suboffset = -1
14134 : */
14135 :
14136 : /* function exit code */
14137 0 : __pyx_L1_error:;
14138 0 : __Pyx_XDECREF(__pyx_t_3);
14139 0 : __Pyx_XDECREF(__pyx_t_5);
14140 0 : __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename);
14141 0 : __pyx_r = NULL;
14142 0 : __pyx_L0:;
14143 0 : __Pyx_RefNannyFinishContext();
14144 0 : return __pyx_r;
14145 : }
14146 :
14147 : /* "View.MemoryView":929
14148 : *
14149 : * @cname('__pyx_memslice_transpose')
14150 : * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil: # <<<<<<<<<<<<<<
14151 : * cdef int ndim = memslice.memview.view.ndim
14152 : *
14153 : */
14154 :
14155 0 : static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) {
14156 0 : int __pyx_v_ndim;
14157 0 : Py_ssize_t *__pyx_v_shape;
14158 0 : Py_ssize_t *__pyx_v_strides;
14159 0 : int __pyx_v_i;
14160 0 : int __pyx_v_j;
14161 0 : int __pyx_r;
14162 0 : int __pyx_t_1;
14163 0 : Py_ssize_t *__pyx_t_2;
14164 0 : long __pyx_t_3;
14165 0 : long __pyx_t_4;
14166 0 : Py_ssize_t __pyx_t_5;
14167 0 : Py_ssize_t __pyx_t_6;
14168 0 : int __pyx_t_7;
14169 0 : int __pyx_t_8;
14170 0 : int __pyx_t_9;
14171 0 : int __pyx_lineno = 0;
14172 0 : const char *__pyx_filename = NULL;
14173 0 : int __pyx_clineno = 0;
14174 : #ifdef WITH_THREAD
14175 0 : PyGILState_STATE __pyx_gilstate_save;
14176 : #endif
14177 :
14178 : /* "View.MemoryView":930
14179 : * @cname('__pyx_memslice_transpose')
14180 : * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil:
14181 : * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<<
14182 : *
14183 : * cdef Py_ssize_t *shape = memslice.shape
14184 : */
14185 0 : __pyx_t_1 = __pyx_v_memslice->memview->view.ndim;
14186 0 : __pyx_v_ndim = __pyx_t_1;
14187 :
14188 : /* "View.MemoryView":932
14189 : * cdef int ndim = memslice.memview.view.ndim
14190 : *
14191 : * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<<
14192 : * cdef Py_ssize_t *strides = memslice.strides
14193 : *
14194 : */
14195 0 : __pyx_t_2 = __pyx_v_memslice->shape;
14196 0 : __pyx_v_shape = __pyx_t_2;
14197 :
14198 : /* "View.MemoryView":933
14199 : *
14200 : * cdef Py_ssize_t *shape = memslice.shape
14201 : * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<<
14202 : *
14203 : *
14204 : */
14205 0 : __pyx_t_2 = __pyx_v_memslice->strides;
14206 0 : __pyx_v_strides = __pyx_t_2;
14207 :
14208 : /* "View.MemoryView":937
14209 : *
14210 : * cdef int i, j
14211 : * for i in range(ndim // 2): # <<<<<<<<<<<<<<
14212 : * j = ndim - 1 - i
14213 : * strides[i], strides[j] = strides[j], strides[i]
14214 : */
14215 0 : __pyx_t_3 = __Pyx_div_long(__pyx_v_ndim, 2);
14216 0 : __pyx_t_4 = __pyx_t_3;
14217 0 : for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) {
14218 0 : __pyx_v_i = __pyx_t_1;
14219 :
14220 : /* "View.MemoryView":938
14221 : * cdef int i, j
14222 : * for i in range(ndim // 2):
14223 : * j = ndim - 1 - i # <<<<<<<<<<<<<<
14224 : * strides[i], strides[j] = strides[j], strides[i]
14225 : * shape[i], shape[j] = shape[j], shape[i]
14226 : */
14227 0 : __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i);
14228 :
14229 : /* "View.MemoryView":939
14230 : * for i in range(ndim // 2):
14231 : * j = ndim - 1 - i
14232 : * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<<
14233 : * shape[i], shape[j] = shape[j], shape[i]
14234 : *
14235 : */
14236 0 : __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]);
14237 0 : __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]);
14238 0 : (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5;
14239 0 : (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6;
14240 :
14241 : /* "View.MemoryView":940
14242 : * j = ndim - 1 - i
14243 : * strides[i], strides[j] = strides[j], strides[i]
14244 : * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<<
14245 : *
14246 : * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
14247 : */
14248 0 : __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]);
14249 0 : __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]);
14250 0 : (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6;
14251 0 : (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5;
14252 :
14253 : /* "View.MemoryView":942
14254 : * shape[i], shape[j] = shape[j], shape[i]
14255 : *
14256 : * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<<
14257 : * _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
14258 : *
14259 : */
14260 0 : __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0);
14261 0 : if (!__pyx_t_8) {
14262 0 : } else {
14263 0 : __pyx_t_7 = __pyx_t_8;
14264 0 : goto __pyx_L6_bool_binop_done;
14265 : }
14266 0 : __pyx_t_8 = ((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0);
14267 0 : __pyx_t_7 = __pyx_t_8;
14268 0 : __pyx_L6_bool_binop_done:;
14269 0 : if (__pyx_t_7) {
14270 :
14271 : /* "View.MemoryView":943
14272 : *
14273 : * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0:
14274 : * _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<<
14275 : *
14276 : * return 0
14277 : */
14278 0 : __pyx_t_9 = __pyx_memoryview_err(PyExc_ValueError, __pyx_kp_s_Cannot_transpose_memoryview_with); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 943, __pyx_L1_error)
14279 :
14280 : /* "View.MemoryView":942
14281 : * shape[i], shape[j] = shape[j], shape[i]
14282 : *
14283 : * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<<
14284 : * _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
14285 : *
14286 : */
14287 : }
14288 : }
14289 :
14290 : /* "View.MemoryView":945
14291 : * _err(PyExc_ValueError, "Cannot transpose memoryview with indirect dimensions")
14292 : *
14293 : * return 0 # <<<<<<<<<<<<<<
14294 : *
14295 : *
14296 : */
14297 0 : __pyx_r = 0;
14298 0 : goto __pyx_L0;
14299 :
14300 : /* "View.MemoryView":929
14301 : *
14302 : * @cname('__pyx_memslice_transpose')
14303 : * cdef int transpose_memslice(__Pyx_memviewslice *memslice) except -1 nogil: # <<<<<<<<<<<<<<
14304 : * cdef int ndim = memslice.memview.view.ndim
14305 : *
14306 : */
14307 :
14308 : /* function exit code */
14309 0 : __pyx_L1_error:;
14310 : #ifdef WITH_THREAD
14311 0 : __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
14312 : #endif
14313 0 : __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
14314 0 : __pyx_r = -1;
14315 : #ifdef WITH_THREAD
14316 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
14317 : #endif
14318 0 : __pyx_L0:;
14319 0 : return __pyx_r;
14320 : }
14321 :
14322 : /* "View.MemoryView":963
14323 : * cdef int (*to_dtype_func)(char *, object) except 0
14324 : *
14325 : * def __dealloc__(self): # <<<<<<<<<<<<<<
14326 : * __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
14327 : *
14328 : */
14329 :
14330 : /* Python wrapper */
14331 : static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/
14332 3 : static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) {
14333 3 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14334 : __Pyx_RefNannyDeclarations
14335 3 : __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0);
14336 3 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
14337 6 : __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
14338 :
14339 : /* function exit code */
14340 3 : __Pyx_RefNannyFinishContext();
14341 : }
14342 :
14343 3 : static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
14344 :
14345 : /* "View.MemoryView":964
14346 : *
14347 : * def __dealloc__(self):
14348 : * __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<<
14349 : *
14350 : * cdef convert_item_to_object(self, char *itemp):
14351 : */
14352 3 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_self->from_slice), 1);
14353 :
14354 : /* "View.MemoryView":963
14355 : * cdef int (*to_dtype_func)(char *, object) except 0
14356 : *
14357 : * def __dealloc__(self): # <<<<<<<<<<<<<<
14358 : * __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
14359 : *
14360 : */
14361 :
14362 : /* function exit code */
14363 : }
14364 :
14365 : /* "View.MemoryView":966
14366 : * __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
14367 : *
14368 : * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
14369 : * if self.to_object_func != NULL:
14370 : * return self.to_object_func(itemp)
14371 : */
14372 :
14373 0 : static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) {
14374 0 : PyObject *__pyx_r = NULL;
14375 : __Pyx_RefNannyDeclarations
14376 0 : int __pyx_t_1;
14377 0 : PyObject *__pyx_t_2 = NULL;
14378 0 : int __pyx_lineno = 0;
14379 0 : const char *__pyx_filename = NULL;
14380 0 : int __pyx_clineno = 0;
14381 0 : __Pyx_RefNannySetupContext("convert_item_to_object", 1);
14382 :
14383 : /* "View.MemoryView":967
14384 : *
14385 : * cdef convert_item_to_object(self, char *itemp):
14386 : * if self.to_object_func != NULL: # <<<<<<<<<<<<<<
14387 : * return self.to_object_func(itemp)
14388 : * else:
14389 : */
14390 0 : __pyx_t_1 = (__pyx_v_self->to_object_func != NULL);
14391 0 : if (__pyx_t_1) {
14392 :
14393 : /* "View.MemoryView":968
14394 : * cdef convert_item_to_object(self, char *itemp):
14395 : * if self.to_object_func != NULL:
14396 : * return self.to_object_func(itemp) # <<<<<<<<<<<<<<
14397 : * else:
14398 : * return memoryview.convert_item_to_object(self, itemp)
14399 : */
14400 0 : __Pyx_XDECREF(__pyx_r);
14401 0 : __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 968, __pyx_L1_error)
14402 0 : __Pyx_GOTREF(__pyx_t_2);
14403 0 : __pyx_r = __pyx_t_2;
14404 0 : __pyx_t_2 = 0;
14405 0 : goto __pyx_L0;
14406 :
14407 : /* "View.MemoryView":967
14408 : *
14409 : * cdef convert_item_to_object(self, char *itemp):
14410 : * if self.to_object_func != NULL: # <<<<<<<<<<<<<<
14411 : * return self.to_object_func(itemp)
14412 : * else:
14413 : */
14414 : }
14415 :
14416 : /* "View.MemoryView":970
14417 : * return self.to_object_func(itemp)
14418 : * else:
14419 : * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<<
14420 : *
14421 : * cdef assign_item_from_object(self, char *itemp, object value):
14422 : */
14423 : /*else*/ {
14424 0 : __Pyx_XDECREF(__pyx_r);
14425 0 : __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 970, __pyx_L1_error)
14426 0 : __Pyx_GOTREF(__pyx_t_2);
14427 0 : __pyx_r = __pyx_t_2;
14428 0 : __pyx_t_2 = 0;
14429 0 : goto __pyx_L0;
14430 : }
14431 :
14432 : /* "View.MemoryView":966
14433 : * __PYX_XCLEAR_MEMVIEW(&self.from_slice, 1)
14434 : *
14435 : * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<<
14436 : * if self.to_object_func != NULL:
14437 : * return self.to_object_func(itemp)
14438 : */
14439 :
14440 : /* function exit code */
14441 0 : __pyx_L1_error:;
14442 0 : __Pyx_XDECREF(__pyx_t_2);
14443 0 : __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
14444 0 : __pyx_r = 0;
14445 0 : __pyx_L0:;
14446 0 : __Pyx_XGIVEREF(__pyx_r);
14447 0 : __Pyx_RefNannyFinishContext();
14448 0 : return __pyx_r;
14449 : }
14450 :
14451 : /* "View.MemoryView":972
14452 : * return memoryview.convert_item_to_object(self, itemp)
14453 : *
14454 : * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
14455 : * if self.to_dtype_func != NULL:
14456 : * self.to_dtype_func(itemp, value)
14457 : */
14458 :
14459 0 : static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) {
14460 0 : PyObject *__pyx_r = NULL;
14461 : __Pyx_RefNannyDeclarations
14462 0 : int __pyx_t_1;
14463 0 : int __pyx_t_2;
14464 0 : PyObject *__pyx_t_3 = NULL;
14465 0 : int __pyx_lineno = 0;
14466 0 : const char *__pyx_filename = NULL;
14467 0 : int __pyx_clineno = 0;
14468 0 : __Pyx_RefNannySetupContext("assign_item_from_object", 1);
14469 :
14470 : /* "View.MemoryView":973
14471 : *
14472 : * cdef assign_item_from_object(self, char *itemp, object value):
14473 : * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<<
14474 : * self.to_dtype_func(itemp, value)
14475 : * else:
14476 : */
14477 0 : __pyx_t_1 = (__pyx_v_self->to_dtype_func != NULL);
14478 0 : if (__pyx_t_1) {
14479 :
14480 : /* "View.MemoryView":974
14481 : * cdef assign_item_from_object(self, char *itemp, object value):
14482 : * if self.to_dtype_func != NULL:
14483 : * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<<
14484 : * else:
14485 : * memoryview.assign_item_from_object(self, itemp, value)
14486 : */
14487 0 : __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(1, 974, __pyx_L1_error)
14488 :
14489 : /* "View.MemoryView":973
14490 : *
14491 : * cdef assign_item_from_object(self, char *itemp, object value):
14492 : * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<<
14493 : * self.to_dtype_func(itemp, value)
14494 : * else:
14495 : */
14496 0 : goto __pyx_L3;
14497 : }
14498 :
14499 : /* "View.MemoryView":976
14500 : * self.to_dtype_func(itemp, value)
14501 : * else:
14502 : * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<<
14503 : *
14504 : * cdef _get_base(self):
14505 : */
14506 : /*else*/ {
14507 0 : __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 976, __pyx_L1_error)
14508 0 : __Pyx_GOTREF(__pyx_t_3);
14509 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14510 : }
14511 0 : __pyx_L3:;
14512 :
14513 : /* "View.MemoryView":972
14514 : * return memoryview.convert_item_to_object(self, itemp)
14515 : *
14516 : * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<<
14517 : * if self.to_dtype_func != NULL:
14518 : * self.to_dtype_func(itemp, value)
14519 : */
14520 :
14521 : /* function exit code */
14522 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14523 0 : goto __pyx_L0;
14524 0 : __pyx_L1_error:;
14525 0 : __Pyx_XDECREF(__pyx_t_3);
14526 0 : __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
14527 0 : __pyx_r = 0;
14528 0 : __pyx_L0:;
14529 0 : __Pyx_XGIVEREF(__pyx_r);
14530 0 : __Pyx_RefNannyFinishContext();
14531 0 : return __pyx_r;
14532 : }
14533 :
14534 : /* "View.MemoryView":978
14535 : * memoryview.assign_item_from_object(self, itemp, value)
14536 : *
14537 : * cdef _get_base(self): # <<<<<<<<<<<<<<
14538 : * return self.from_object
14539 : *
14540 : */
14541 :
14542 0 : static PyObject *__pyx_memoryviewslice__get_base(struct __pyx_memoryviewslice_obj *__pyx_v_self) {
14543 0 : PyObject *__pyx_r = NULL;
14544 : __Pyx_RefNannyDeclarations
14545 0 : __Pyx_RefNannySetupContext("_get_base", 1);
14546 :
14547 : /* "View.MemoryView":979
14548 : *
14549 : * cdef _get_base(self):
14550 : * return self.from_object # <<<<<<<<<<<<<<
14551 : *
14552 : *
14553 : */
14554 0 : __Pyx_XDECREF(__pyx_r);
14555 0 : __Pyx_INCREF(__pyx_v_self->from_object);
14556 0 : __pyx_r = __pyx_v_self->from_object;
14557 0 : goto __pyx_L0;
14558 :
14559 : /* "View.MemoryView":978
14560 : * memoryview.assign_item_from_object(self, itemp, value)
14561 : *
14562 : * cdef _get_base(self): # <<<<<<<<<<<<<<
14563 : * return self.from_object
14564 : *
14565 : */
14566 :
14567 : /* function exit code */
14568 0 : __pyx_L0:;
14569 0 : __Pyx_XGIVEREF(__pyx_r);
14570 0 : __Pyx_RefNannyFinishContext();
14571 0 : return __pyx_r;
14572 : }
14573 :
14574 : /* "(tree fragment)":1
14575 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
14576 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14577 : * def __setstate_cython__(self, __pyx_state):
14578 : */
14579 :
14580 : /* Python wrapper */
14581 : static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self,
14582 : #if CYTHON_METH_FASTCALL
14583 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14584 : #else
14585 : PyObject *__pyx_args, PyObject *__pyx_kwds
14586 : #endif
14587 : ); /*proto*/
14588 0 : static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self,
14589 : #if CYTHON_METH_FASTCALL
14590 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14591 : #else
14592 : PyObject *__pyx_args, PyObject *__pyx_kwds
14593 : #endif
14594 : ) {
14595 : #if !CYTHON_METH_FASTCALL
14596 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14597 : #endif
14598 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14599 0 : PyObject *__pyx_r = 0;
14600 : __Pyx_RefNannyDeclarations
14601 0 : __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0);
14602 : #if !CYTHON_METH_FASTCALL
14603 : #if CYTHON_ASSUME_SAFE_MACROS
14604 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14605 : #else
14606 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14607 : #endif
14608 : #endif
14609 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14610 0 : if (unlikely(__pyx_nargs > 0)) {
14611 0 : __Pyx_RaiseArgtupleInvalid("__reduce_cython__", 1, 0, 0, __pyx_nargs); return NULL;}
14612 0 : if (unlikely(__pyx_kwds) && __Pyx_NumKwargs_FASTCALL(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__reduce_cython__", 0))) return NULL;
14613 0 : __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self));
14614 :
14615 : /* function exit code */
14616 0 : __Pyx_RefNannyFinishContext();
14617 0 : return __pyx_r;
14618 : }
14619 :
14620 0 : static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) {
14621 0 : PyObject *__pyx_r = NULL;
14622 : __Pyx_RefNannyDeclarations
14623 0 : int __pyx_lineno = 0;
14624 0 : const char *__pyx_filename = NULL;
14625 0 : int __pyx_clineno = 0;
14626 0 : __Pyx_RefNannySetupContext("__reduce_cython__", 1);
14627 :
14628 : /* "(tree fragment)":2
14629 : * def __reduce_cython__(self):
14630 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
14631 : * def __setstate_cython__(self, __pyx_state):
14632 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14633 : */
14634 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
14635 0 : __PYX_ERR(1, 2, __pyx_L1_error)
14636 :
14637 : /* "(tree fragment)":1
14638 : * def __reduce_cython__(self): # <<<<<<<<<<<<<<
14639 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14640 : * def __setstate_cython__(self, __pyx_state):
14641 : */
14642 :
14643 : /* function exit code */
14644 0 : __pyx_L1_error:;
14645 0 : __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
14646 0 : __pyx_r = NULL;
14647 0 : __Pyx_XGIVEREF(__pyx_r);
14648 0 : __Pyx_RefNannyFinishContext();
14649 0 : return __pyx_r;
14650 : }
14651 :
14652 : /* "(tree fragment)":3
14653 : * def __reduce_cython__(self):
14654 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14655 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
14656 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14657 : */
14658 :
14659 : /* Python wrapper */
14660 : static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self,
14661 : #if CYTHON_METH_FASTCALL
14662 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14663 : #else
14664 : PyObject *__pyx_args, PyObject *__pyx_kwds
14665 : #endif
14666 : ); /*proto*/
14667 0 : static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self,
14668 : #if CYTHON_METH_FASTCALL
14669 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
14670 : #else
14671 : PyObject *__pyx_args, PyObject *__pyx_kwds
14672 : #endif
14673 : ) {
14674 0 : CYTHON_UNUSED PyObject *__pyx_v___pyx_state = 0;
14675 : #if !CYTHON_METH_FASTCALL
14676 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
14677 : #endif
14678 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
14679 0 : PyObject* values[1] = {0};
14680 0 : int __pyx_lineno = 0;
14681 0 : const char *__pyx_filename = NULL;
14682 0 : int __pyx_clineno = 0;
14683 0 : PyObject *__pyx_r = 0;
14684 : __Pyx_RefNannyDeclarations
14685 0 : __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0);
14686 : #if !CYTHON_METH_FASTCALL
14687 : #if CYTHON_ASSUME_SAFE_MACROS
14688 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
14689 : #else
14690 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
14691 : #endif
14692 : #endif
14693 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
14694 : {
14695 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_state,0};
14696 0 : if (__pyx_kwds) {
14697 0 : Py_ssize_t kw_args;
14698 0 : switch (__pyx_nargs) {
14699 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
14700 0 : CYTHON_FALLTHROUGH;
14701 0 : case 0: break;
14702 0 : default: goto __pyx_L5_argtuple_error;
14703 : }
14704 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
14705 0 : switch (__pyx_nargs) {
14706 : case 0:
14707 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
14708 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
14709 0 : kw_args--;
14710 : }
14711 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 3, __pyx_L3_error)
14712 0 : else goto __pyx_L5_argtuple_error;
14713 : }
14714 0 : if (unlikely(kw_args > 0)) {
14715 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
14716 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__setstate_cython__") < 0)) __PYX_ERR(1, 3, __pyx_L3_error)
14717 : }
14718 0 : } else if (unlikely(__pyx_nargs != 1)) {
14719 0 : goto __pyx_L5_argtuple_error;
14720 : } else {
14721 0 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
14722 : }
14723 0 : __pyx_v___pyx_state = values[0];
14724 : }
14725 0 : goto __pyx_L6_skip;
14726 0 : __pyx_L5_argtuple_error:;
14727 0 : __Pyx_RaiseArgtupleInvalid("__setstate_cython__", 1, 1, 1, __pyx_nargs); __PYX_ERR(1, 3, __pyx_L3_error)
14728 0 : __pyx_L6_skip:;
14729 0 : goto __pyx_L4_argument_unpacking_done;
14730 0 : __pyx_L3_error:;
14731 : {
14732 0 : Py_ssize_t __pyx_temp;
14733 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14734 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
14735 : }
14736 : }
14737 0 : __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
14738 0 : __Pyx_RefNannyFinishContext();
14739 0 : return NULL;
14740 0 : __pyx_L4_argument_unpacking_done:;
14741 0 : __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), __pyx_v___pyx_state);
14742 :
14743 : /* function exit code */
14744 : {
14745 0 : Py_ssize_t __pyx_temp;
14746 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
14747 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
14748 : }
14749 : }
14750 : __Pyx_RefNannyFinishContext();
14751 : return __pyx_r;
14752 : }
14753 :
14754 0 : static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) {
14755 0 : PyObject *__pyx_r = NULL;
14756 : __Pyx_RefNannyDeclarations
14757 0 : int __pyx_lineno = 0;
14758 0 : const char *__pyx_filename = NULL;
14759 0 : int __pyx_clineno = 0;
14760 0 : __Pyx_RefNannySetupContext("__setstate_cython__", 1);
14761 :
14762 : /* "(tree fragment)":4
14763 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14764 : * def __setstate_cython__(self, __pyx_state):
14765 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__" # <<<<<<<<<<<<<<
14766 : */
14767 0 : __Pyx_Raise(__pyx_builtin_TypeError, __pyx_kp_s_no_default___reduce___due_to_non, 0, 0);
14768 0 : __PYX_ERR(1, 4, __pyx_L1_error)
14769 :
14770 : /* "(tree fragment)":3
14771 : * def __reduce_cython__(self):
14772 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14773 : * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<<
14774 : * raise TypeError, "no default __reduce__ due to non-trivial __cinit__"
14775 : */
14776 :
14777 : /* function exit code */
14778 0 : __pyx_L1_error:;
14779 0 : __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename);
14780 0 : __pyx_r = NULL;
14781 0 : __Pyx_XGIVEREF(__pyx_r);
14782 0 : __Pyx_RefNannyFinishContext();
14783 0 : return __pyx_r;
14784 : }
14785 :
14786 : /* "View.MemoryView":999
14787 : *
14788 : * @cname('__pyx_memoryview_fromslice')
14789 : * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<<
14790 : * int ndim,
14791 : * object (*to_object_func)(char *),
14792 : */
14793 :
14794 3 : static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) {
14795 3 : struct __pyx_memoryviewslice_obj *__pyx_v_result = 0;
14796 3 : Py_ssize_t __pyx_v_suboffset;
14797 3 : PyObject *__pyx_v_length = NULL;
14798 3 : PyObject *__pyx_r = NULL;
14799 : __Pyx_RefNannyDeclarations
14800 3 : int __pyx_t_1;
14801 3 : PyObject *__pyx_t_2 = NULL;
14802 3 : PyObject *__pyx_t_3 = NULL;
14803 3 : __Pyx_TypeInfo *__pyx_t_4;
14804 3 : Py_buffer __pyx_t_5;
14805 3 : Py_ssize_t *__pyx_t_6;
14806 3 : Py_ssize_t *__pyx_t_7;
14807 3 : Py_ssize_t *__pyx_t_8;
14808 3 : Py_ssize_t __pyx_t_9;
14809 3 : int __pyx_lineno = 0;
14810 3 : const char *__pyx_filename = NULL;
14811 3 : int __pyx_clineno = 0;
14812 3 : __Pyx_RefNannySetupContext("memoryview_fromslice", 1);
14813 :
14814 : /* "View.MemoryView":1007
14815 : * cdef _memoryviewslice result
14816 : *
14817 : * if <PyObject *> memviewslice.memview == Py_None: # <<<<<<<<<<<<<<
14818 : * return None
14819 : *
14820 : */
14821 3 : __pyx_t_1 = (((PyObject *)__pyx_v_memviewslice.memview) == Py_None);
14822 3 : if (__pyx_t_1) {
14823 :
14824 : /* "View.MemoryView":1008
14825 : *
14826 : * if <PyObject *> memviewslice.memview == Py_None:
14827 : * return None # <<<<<<<<<<<<<<
14828 : *
14829 : *
14830 : */
14831 0 : __Pyx_XDECREF(__pyx_r);
14832 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
14833 0 : goto __pyx_L0;
14834 :
14835 : /* "View.MemoryView":1007
14836 : * cdef _memoryviewslice result
14837 : *
14838 : * if <PyObject *> memviewslice.memview == Py_None: # <<<<<<<<<<<<<<
14839 : * return None
14840 : *
14841 : */
14842 : }
14843 :
14844 : /* "View.MemoryView":1013
14845 : *
14846 : *
14847 : * result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object) # <<<<<<<<<<<<<<
14848 : *
14849 : * result.from_slice = memviewslice
14850 : */
14851 3 : __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
14852 3 : __Pyx_GOTREF(__pyx_t_2);
14853 3 : __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1013, __pyx_L1_error)
14854 3 : __Pyx_GOTREF(__pyx_t_3);
14855 3 : __Pyx_INCREF(Py_None);
14856 3 : __Pyx_GIVEREF(Py_None);
14857 3 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None)) __PYX_ERR(1, 1013, __pyx_L1_error);
14858 3 : __Pyx_INCREF(__pyx_int_0);
14859 3 : __Pyx_GIVEREF(__pyx_int_0);
14860 3 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0)) __PYX_ERR(1, 1013, __pyx_L1_error);
14861 3 : __Pyx_GIVEREF(__pyx_t_2);
14862 3 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error);
14863 3 : __pyx_t_2 = 0;
14864 3 : __pyx_t_2 = ((PyObject *)__pyx_tp_new__memoryviewslice(((PyTypeObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1013, __pyx_L1_error)
14865 3 : __Pyx_GOTREF((PyObject *)__pyx_t_2);
14866 3 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
14867 3 : __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
14868 3 : __pyx_t_2 = 0;
14869 :
14870 : /* "View.MemoryView":1015
14871 : * result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object)
14872 : *
14873 : * result.from_slice = memviewslice # <<<<<<<<<<<<<<
14874 : * __PYX_INC_MEMVIEW(&memviewslice, 1)
14875 : *
14876 : */
14877 3 : __pyx_v_result->from_slice = __pyx_v_memviewslice;
14878 :
14879 : /* "View.MemoryView":1016
14880 : *
14881 : * result.from_slice = memviewslice
14882 : * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<<
14883 : *
14884 : * result.from_object = (<memoryview> memviewslice.memview)._get_base()
14885 : */
14886 3 : __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1);
14887 :
14888 : /* "View.MemoryView":1018
14889 : * __PYX_INC_MEMVIEW(&memviewslice, 1)
14890 : *
14891 : * result.from_object = (<memoryview> memviewslice.memview)._get_base() # <<<<<<<<<<<<<<
14892 : * result.typeinfo = memviewslice.memview.typeinfo
14893 : *
14894 : */
14895 3 : __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->__pyx_vtab)->_get_base(((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1018, __pyx_L1_error)
14896 3 : __Pyx_GOTREF(__pyx_t_2);
14897 3 : __Pyx_GIVEREF(__pyx_t_2);
14898 3 : __Pyx_GOTREF(__pyx_v_result->from_object);
14899 3 : __Pyx_DECREF(__pyx_v_result->from_object);
14900 3 : __pyx_v_result->from_object = __pyx_t_2;
14901 3 : __pyx_t_2 = 0;
14902 :
14903 : /* "View.MemoryView":1019
14904 : *
14905 : * result.from_object = (<memoryview> memviewslice.memview)._get_base()
14906 : * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<<
14907 : *
14908 : * result.view = memviewslice.memview.view
14909 : */
14910 3 : __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo;
14911 3 : __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4;
14912 :
14913 : /* "View.MemoryView":1021
14914 : * result.typeinfo = memviewslice.memview.typeinfo
14915 : *
14916 : * result.view = memviewslice.memview.view # <<<<<<<<<<<<<<
14917 : * result.view.buf = <void *> memviewslice.data
14918 : * result.view.ndim = ndim
14919 : */
14920 3 : __pyx_t_5 = __pyx_v_memviewslice.memview->view;
14921 3 : __pyx_v_result->__pyx_base.view = __pyx_t_5;
14922 :
14923 : /* "View.MemoryView":1022
14924 : *
14925 : * result.view = memviewslice.memview.view
14926 : * result.view.buf = <void *> memviewslice.data # <<<<<<<<<<<<<<
14927 : * result.view.ndim = ndim
14928 : * (<__pyx_buffer *> &result.view).obj = Py_None
14929 : */
14930 3 : __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data);
14931 :
14932 : /* "View.MemoryView":1023
14933 : * result.view = memviewslice.memview.view
14934 : * result.view.buf = <void *> memviewslice.data
14935 : * result.view.ndim = ndim # <<<<<<<<<<<<<<
14936 : * (<__pyx_buffer *> &result.view).obj = Py_None
14937 : * Py_INCREF(Py_None)
14938 : */
14939 3 : __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim;
14940 :
14941 : /* "View.MemoryView":1024
14942 : * result.view.buf = <void *> memviewslice.data
14943 : * result.view.ndim = ndim
14944 : * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<<
14945 : * Py_INCREF(Py_None)
14946 : *
14947 : */
14948 3 : ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None;
14949 :
14950 : /* "View.MemoryView":1025
14951 : * result.view.ndim = ndim
14952 : * (<__pyx_buffer *> &result.view).obj = Py_None
14953 : * Py_INCREF(Py_None) # <<<<<<<<<<<<<<
14954 : *
14955 : * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
14956 : */
14957 3 : Py_INCREF(Py_None);
14958 :
14959 : /* "View.MemoryView":1027
14960 : * Py_INCREF(Py_None)
14961 : *
14962 : * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<<
14963 : * result.flags = PyBUF_RECORDS
14964 : * else:
14965 : */
14966 3 : __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0);
14967 3 : if (__pyx_t_1) {
14968 :
14969 : /* "View.MemoryView":1028
14970 : *
14971 : * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE:
14972 : * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<<
14973 : * else:
14974 : * result.flags = PyBUF_RECORDS_RO
14975 : */
14976 3 : __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS;
14977 :
14978 : /* "View.MemoryView":1027
14979 : * Py_INCREF(Py_None)
14980 : *
14981 : * if (<memoryview>memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<<
14982 : * result.flags = PyBUF_RECORDS
14983 : * else:
14984 : */
14985 3 : goto __pyx_L4;
14986 : }
14987 :
14988 : /* "View.MemoryView":1030
14989 : * result.flags = PyBUF_RECORDS
14990 : * else:
14991 : * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<<
14992 : *
14993 : * result.view.shape = <Py_ssize_t *> result.from_slice.shape
14994 : */
14995 : /*else*/ {
14996 0 : __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO;
14997 : }
14998 3 : __pyx_L4:;
14999 :
15000 : /* "View.MemoryView":1032
15001 : * result.flags = PyBUF_RECORDS_RO
15002 : *
15003 : * result.view.shape = <Py_ssize_t *> result.from_slice.shape # <<<<<<<<<<<<<<
15004 : * result.view.strides = <Py_ssize_t *> result.from_slice.strides
15005 : *
15006 : */
15007 3 : __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape);
15008 :
15009 : /* "View.MemoryView":1033
15010 : *
15011 : * result.view.shape = <Py_ssize_t *> result.from_slice.shape
15012 : * result.view.strides = <Py_ssize_t *> result.from_slice.strides # <<<<<<<<<<<<<<
15013 : *
15014 : *
15015 : */
15016 3 : __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides);
15017 :
15018 : /* "View.MemoryView":1036
15019 : *
15020 : *
15021 : * result.view.suboffsets = NULL # <<<<<<<<<<<<<<
15022 : * for suboffset in result.from_slice.suboffsets[:ndim]:
15023 : * if suboffset >= 0:
15024 : */
15025 3 : __pyx_v_result->__pyx_base.view.suboffsets = NULL;
15026 :
15027 : /* "View.MemoryView":1037
15028 : *
15029 : * result.view.suboffsets = NULL
15030 : * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<<
15031 : * if suboffset >= 0:
15032 : * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
15033 : */
15034 3 : __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim);
15035 10 : for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
15036 7 : __pyx_t_6 = __pyx_t_8;
15037 7 : __pyx_v_suboffset = (__pyx_t_6[0]);
15038 :
15039 : /* "View.MemoryView":1038
15040 : * result.view.suboffsets = NULL
15041 : * for suboffset in result.from_slice.suboffsets[:ndim]:
15042 : * if suboffset >= 0: # <<<<<<<<<<<<<<
15043 : * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
15044 : * break
15045 : */
15046 7 : __pyx_t_1 = (__pyx_v_suboffset >= 0);
15047 7 : if (__pyx_t_1) {
15048 :
15049 : /* "View.MemoryView":1039
15050 : * for suboffset in result.from_slice.suboffsets[:ndim]:
15051 : * if suboffset >= 0:
15052 : * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets # <<<<<<<<<<<<<<
15053 : * break
15054 : *
15055 : */
15056 0 : __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets);
15057 :
15058 : /* "View.MemoryView":1040
15059 : * if suboffset >= 0:
15060 : * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
15061 : * break # <<<<<<<<<<<<<<
15062 : *
15063 : * result.view.len = result.view.itemsize
15064 : */
15065 0 : goto __pyx_L6_break;
15066 :
15067 : /* "View.MemoryView":1038
15068 : * result.view.suboffsets = NULL
15069 : * for suboffset in result.from_slice.suboffsets[:ndim]:
15070 : * if suboffset >= 0: # <<<<<<<<<<<<<<
15071 : * result.view.suboffsets = <Py_ssize_t *> result.from_slice.suboffsets
15072 : * break
15073 : */
15074 : }
15075 : }
15076 3 : __pyx_L6_break:;
15077 :
15078 : /* "View.MemoryView":1042
15079 : * break
15080 : *
15081 : * result.view.len = result.view.itemsize # <<<<<<<<<<<<<<
15082 : * for length in result.view.shape[:ndim]:
15083 : * result.view.len *= length
15084 : */
15085 3 : __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize;
15086 3 : __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
15087 :
15088 : /* "View.MemoryView":1043
15089 : *
15090 : * result.view.len = result.view.itemsize
15091 : * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<<
15092 : * result.view.len *= length
15093 : *
15094 : */
15095 3 : __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim);
15096 10 : for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) {
15097 7 : __pyx_t_6 = __pyx_t_8;
15098 7 : __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1043, __pyx_L1_error)
15099 7 : __Pyx_GOTREF(__pyx_t_2);
15100 7 : __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2);
15101 7 : __pyx_t_2 = 0;
15102 :
15103 : /* "View.MemoryView":1044
15104 : * result.view.len = result.view.itemsize
15105 : * for length in result.view.shape[:ndim]:
15106 : * result.view.len *= length # <<<<<<<<<<<<<<
15107 : *
15108 : * result.to_object_func = to_object_func
15109 : */
15110 7 : __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1044, __pyx_L1_error)
15111 7 : __Pyx_GOTREF(__pyx_t_2);
15112 7 : __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 1044, __pyx_L1_error)
15113 7 : __Pyx_GOTREF(__pyx_t_3);
15114 7 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
15115 7 : __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 1044, __pyx_L1_error)
15116 7 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
15117 7 : __pyx_v_result->__pyx_base.view.len = __pyx_t_9;
15118 : }
15119 :
15120 : /* "View.MemoryView":1046
15121 : * result.view.len *= length
15122 : *
15123 : * result.to_object_func = to_object_func # <<<<<<<<<<<<<<
15124 : * result.to_dtype_func = to_dtype_func
15125 : *
15126 : */
15127 3 : __pyx_v_result->to_object_func = __pyx_v_to_object_func;
15128 :
15129 : /* "View.MemoryView":1047
15130 : *
15131 : * result.to_object_func = to_object_func
15132 : * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<<
15133 : *
15134 : * return result
15135 : */
15136 3 : __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func;
15137 :
15138 : /* "View.MemoryView":1049
15139 : * result.to_dtype_func = to_dtype_func
15140 : *
15141 : * return result # <<<<<<<<<<<<<<
15142 : *
15143 : * @cname('__pyx_memoryview_get_slice_from_memoryview')
15144 : */
15145 3 : __Pyx_XDECREF(__pyx_r);
15146 3 : __Pyx_INCREF((PyObject *)__pyx_v_result);
15147 3 : __pyx_r = ((PyObject *)__pyx_v_result);
15148 3 : goto __pyx_L0;
15149 :
15150 : /* "View.MemoryView":999
15151 : *
15152 : * @cname('__pyx_memoryview_fromslice')
15153 : * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<<
15154 : * int ndim,
15155 : * object (*to_object_func)(char *),
15156 : */
15157 :
15158 : /* function exit code */
15159 0 : __pyx_L1_error:;
15160 0 : __Pyx_XDECREF(__pyx_t_2);
15161 0 : __Pyx_XDECREF(__pyx_t_3);
15162 0 : __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename);
15163 0 : __pyx_r = 0;
15164 3 : __pyx_L0:;
15165 3 : __Pyx_XDECREF((PyObject *)__pyx_v_result);
15166 3 : __Pyx_XDECREF(__pyx_v_length);
15167 3 : __Pyx_XGIVEREF(__pyx_r);
15168 3 : __Pyx_RefNannyFinishContext();
15169 3 : return __pyx_r;
15170 : }
15171 :
15172 : /* "View.MemoryView":1052
15173 : *
15174 : * @cname('__pyx_memoryview_get_slice_from_memoryview')
15175 : * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<<
15176 : * __Pyx_memviewslice *mslice) except NULL:
15177 : * cdef _memoryviewslice obj
15178 : */
15179 :
15180 0 : static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) {
15181 0 : struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0;
15182 0 : __Pyx_memviewslice *__pyx_r;
15183 : __Pyx_RefNannyDeclarations
15184 0 : int __pyx_t_1;
15185 0 : PyObject *__pyx_t_2 = NULL;
15186 0 : int __pyx_lineno = 0;
15187 0 : const char *__pyx_filename = NULL;
15188 0 : int __pyx_clineno = 0;
15189 0 : __Pyx_RefNannySetupContext("get_slice_from_memview", 1);
15190 :
15191 : /* "View.MemoryView":1055
15192 : * __Pyx_memviewslice *mslice) except NULL:
15193 : * cdef _memoryviewslice obj
15194 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
15195 : * obj = memview
15196 : * return &obj.from_slice
15197 : */
15198 0 : __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
15199 0 : if (__pyx_t_1) {
15200 :
15201 : /* "View.MemoryView":1056
15202 : * cdef _memoryviewslice obj
15203 : * if isinstance(memview, _memoryviewslice):
15204 : * obj = memview # <<<<<<<<<<<<<<
15205 : * return &obj.from_slice
15206 : * else:
15207 : */
15208 0 : if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(1, 1056, __pyx_L1_error)
15209 0 : __pyx_t_2 = ((PyObject *)__pyx_v_memview);
15210 0 : __Pyx_INCREF(__pyx_t_2);
15211 0 : __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2);
15212 0 : __pyx_t_2 = 0;
15213 :
15214 : /* "View.MemoryView":1057
15215 : * if isinstance(memview, _memoryviewslice):
15216 : * obj = memview
15217 : * return &obj.from_slice # <<<<<<<<<<<<<<
15218 : * else:
15219 : * slice_copy(memview, mslice)
15220 : */
15221 0 : __pyx_r = (&__pyx_v_obj->from_slice);
15222 0 : goto __pyx_L0;
15223 :
15224 : /* "View.MemoryView":1055
15225 : * __Pyx_memviewslice *mslice) except NULL:
15226 : * cdef _memoryviewslice obj
15227 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
15228 : * obj = memview
15229 : * return &obj.from_slice
15230 : */
15231 : }
15232 :
15233 : /* "View.MemoryView":1059
15234 : * return &obj.from_slice
15235 : * else:
15236 : * slice_copy(memview, mslice) # <<<<<<<<<<<<<<
15237 : * return mslice
15238 : *
15239 : */
15240 : /*else*/ {
15241 0 : __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice);
15242 :
15243 : /* "View.MemoryView":1060
15244 : * else:
15245 : * slice_copy(memview, mslice)
15246 : * return mslice # <<<<<<<<<<<<<<
15247 : *
15248 : * @cname('__pyx_memoryview_slice_copy')
15249 : */
15250 0 : __pyx_r = __pyx_v_mslice;
15251 0 : goto __pyx_L0;
15252 : }
15253 :
15254 : /* "View.MemoryView":1052
15255 : *
15256 : * @cname('__pyx_memoryview_get_slice_from_memoryview')
15257 : * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<<
15258 : * __Pyx_memviewslice *mslice) except NULL:
15259 : * cdef _memoryviewslice obj
15260 : */
15261 :
15262 : /* function exit code */
15263 0 : __pyx_L1_error:;
15264 0 : __Pyx_XDECREF(__pyx_t_2);
15265 0 : __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename);
15266 0 : __pyx_r = NULL;
15267 0 : __pyx_L0:;
15268 0 : __Pyx_XDECREF((PyObject *)__pyx_v_obj);
15269 0 : __Pyx_RefNannyFinishContext();
15270 0 : return __pyx_r;
15271 : }
15272 :
15273 : /* "View.MemoryView":1063
15274 : *
15275 : * @cname('__pyx_memoryview_slice_copy')
15276 : * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept: # <<<<<<<<<<<<<<
15277 : * cdef int dim
15278 : * cdef (Py_ssize_t*) shape, strides, suboffsets
15279 : */
15280 :
15281 0 : static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) {
15282 0 : int __pyx_v_dim;
15283 0 : Py_ssize_t *__pyx_v_shape;
15284 0 : Py_ssize_t *__pyx_v_strides;
15285 0 : Py_ssize_t *__pyx_v_suboffsets;
15286 0 : Py_ssize_t *__pyx_t_1;
15287 0 : int __pyx_t_2;
15288 0 : int __pyx_t_3;
15289 0 : int __pyx_t_4;
15290 0 : Py_ssize_t __pyx_t_5;
15291 0 : int __pyx_t_6;
15292 :
15293 : /* "View.MemoryView":1067
15294 : * cdef (Py_ssize_t*) shape, strides, suboffsets
15295 : *
15296 : * shape = memview.view.shape # <<<<<<<<<<<<<<
15297 : * strides = memview.view.strides
15298 : * suboffsets = memview.view.suboffsets
15299 : */
15300 0 : __pyx_t_1 = __pyx_v_memview->view.shape;
15301 0 : __pyx_v_shape = __pyx_t_1;
15302 :
15303 : /* "View.MemoryView":1068
15304 : *
15305 : * shape = memview.view.shape
15306 : * strides = memview.view.strides # <<<<<<<<<<<<<<
15307 : * suboffsets = memview.view.suboffsets
15308 : *
15309 : */
15310 0 : __pyx_t_1 = __pyx_v_memview->view.strides;
15311 0 : __pyx_v_strides = __pyx_t_1;
15312 :
15313 : /* "View.MemoryView":1069
15314 : * shape = memview.view.shape
15315 : * strides = memview.view.strides
15316 : * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<<
15317 : *
15318 : * dst.memview = <__pyx_memoryview *> memview
15319 : */
15320 0 : __pyx_t_1 = __pyx_v_memview->view.suboffsets;
15321 0 : __pyx_v_suboffsets = __pyx_t_1;
15322 :
15323 : /* "View.MemoryView":1071
15324 : * suboffsets = memview.view.suboffsets
15325 : *
15326 : * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<<
15327 : * dst.data = <char *> memview.view.buf
15328 : *
15329 : */
15330 0 : __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview);
15331 :
15332 : /* "View.MemoryView":1072
15333 : *
15334 : * dst.memview = <__pyx_memoryview *> memview
15335 : * dst.data = <char *> memview.view.buf # <<<<<<<<<<<<<<
15336 : *
15337 : * for dim in range(memview.view.ndim):
15338 : */
15339 0 : __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf);
15340 :
15341 : /* "View.MemoryView":1074
15342 : * dst.data = <char *> memview.view.buf
15343 : *
15344 : * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<<
15345 : * dst.shape[dim] = shape[dim]
15346 : * dst.strides[dim] = strides[dim]
15347 : */
15348 0 : __pyx_t_2 = __pyx_v_memview->view.ndim;
15349 0 : __pyx_t_3 = __pyx_t_2;
15350 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
15351 0 : __pyx_v_dim = __pyx_t_4;
15352 :
15353 : /* "View.MemoryView":1075
15354 : *
15355 : * for dim in range(memview.view.ndim):
15356 : * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<<
15357 : * dst.strides[dim] = strides[dim]
15358 : * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
15359 : */
15360 0 : (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]);
15361 :
15362 : /* "View.MemoryView":1076
15363 : * for dim in range(memview.view.ndim):
15364 : * dst.shape[dim] = shape[dim]
15365 : * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<<
15366 : * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1
15367 : *
15368 : */
15369 0 : (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]);
15370 :
15371 : /* "View.MemoryView":1077
15372 : * dst.shape[dim] = shape[dim]
15373 : * dst.strides[dim] = strides[dim]
15374 : * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<<
15375 : *
15376 : * @cname('__pyx_memoryview_copy_object')
15377 : */
15378 0 : __pyx_t_6 = (__pyx_v_suboffsets != 0);
15379 0 : if (__pyx_t_6) {
15380 0 : __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]);
15381 : } else {
15382 : __pyx_t_5 = -1L;
15383 : }
15384 0 : (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5;
15385 : }
15386 :
15387 : /* "View.MemoryView":1063
15388 : *
15389 : * @cname('__pyx_memoryview_slice_copy')
15390 : * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst) noexcept: # <<<<<<<<<<<<<<
15391 : * cdef int dim
15392 : * cdef (Py_ssize_t*) shape, strides, suboffsets
15393 : */
15394 :
15395 : /* function exit code */
15396 0 : }
15397 :
15398 : /* "View.MemoryView":1080
15399 : *
15400 : * @cname('__pyx_memoryview_copy_object')
15401 : * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<<
15402 : * "Create a new memoryview object"
15403 : * cdef __Pyx_memviewslice memviewslice
15404 : */
15405 :
15406 0 : static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) {
15407 0 : __Pyx_memviewslice __pyx_v_memviewslice;
15408 0 : PyObject *__pyx_r = NULL;
15409 : __Pyx_RefNannyDeclarations
15410 0 : PyObject *__pyx_t_1 = NULL;
15411 0 : int __pyx_lineno = 0;
15412 0 : const char *__pyx_filename = NULL;
15413 0 : int __pyx_clineno = 0;
15414 0 : __Pyx_RefNannySetupContext("memoryview_copy", 1);
15415 :
15416 : /* "View.MemoryView":1083
15417 : * "Create a new memoryview object"
15418 : * cdef __Pyx_memviewslice memviewslice
15419 : * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<<
15420 : * return memoryview_copy_from_slice(memview, &memviewslice)
15421 : *
15422 : */
15423 0 : __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice));
15424 :
15425 : /* "View.MemoryView":1084
15426 : * cdef __Pyx_memviewslice memviewslice
15427 : * slice_copy(memview, &memviewslice)
15428 : * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<<
15429 : *
15430 : * @cname('__pyx_memoryview_copy_object_from_slice')
15431 : */
15432 0 : __Pyx_XDECREF(__pyx_r);
15433 0 : __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1084, __pyx_L1_error)
15434 0 : __Pyx_GOTREF(__pyx_t_1);
15435 0 : __pyx_r = __pyx_t_1;
15436 0 : __pyx_t_1 = 0;
15437 0 : goto __pyx_L0;
15438 :
15439 : /* "View.MemoryView":1080
15440 : *
15441 : * @cname('__pyx_memoryview_copy_object')
15442 : * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<<
15443 : * "Create a new memoryview object"
15444 : * cdef __Pyx_memviewslice memviewslice
15445 : */
15446 :
15447 : /* function exit code */
15448 0 : __pyx_L1_error:;
15449 0 : __Pyx_XDECREF(__pyx_t_1);
15450 0 : __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
15451 0 : __pyx_r = 0;
15452 0 : __pyx_L0:;
15453 0 : __Pyx_XGIVEREF(__pyx_r);
15454 0 : __Pyx_RefNannyFinishContext();
15455 0 : return __pyx_r;
15456 : }
15457 :
15458 : /* "View.MemoryView":1087
15459 : *
15460 : * @cname('__pyx_memoryview_copy_object_from_slice')
15461 : * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<<
15462 : * """
15463 : * Create a new memoryview object from a given memoryview object and slice.
15464 : */
15465 :
15466 0 : static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) {
15467 0 : PyObject *(*__pyx_v_to_object_func)(char *);
15468 0 : int (*__pyx_v_to_dtype_func)(char *, PyObject *);
15469 0 : PyObject *__pyx_r = NULL;
15470 : __Pyx_RefNannyDeclarations
15471 0 : int __pyx_t_1;
15472 0 : PyObject *(*__pyx_t_2)(char *);
15473 0 : int (*__pyx_t_3)(char *, PyObject *);
15474 0 : PyObject *__pyx_t_4 = NULL;
15475 0 : int __pyx_lineno = 0;
15476 0 : const char *__pyx_filename = NULL;
15477 0 : int __pyx_clineno = 0;
15478 0 : __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 1);
15479 :
15480 : /* "View.MemoryView":1094
15481 : * cdef int (*to_dtype_func)(char *, object) except 0
15482 : *
15483 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
15484 : * to_object_func = (<_memoryviewslice> memview).to_object_func
15485 : * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
15486 : */
15487 0 : __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type);
15488 0 : if (__pyx_t_1) {
15489 :
15490 : /* "View.MemoryView":1095
15491 : *
15492 : * if isinstance(memview, _memoryviewslice):
15493 : * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<<
15494 : * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
15495 : * else:
15496 : */
15497 0 : __pyx_t_2 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func;
15498 0 : __pyx_v_to_object_func = __pyx_t_2;
15499 :
15500 : /* "View.MemoryView":1096
15501 : * if isinstance(memview, _memoryviewslice):
15502 : * to_object_func = (<_memoryviewslice> memview).to_object_func
15503 : * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<<
15504 : * else:
15505 : * to_object_func = NULL
15506 : */
15507 0 : __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func;
15508 0 : __pyx_v_to_dtype_func = __pyx_t_3;
15509 :
15510 : /* "View.MemoryView":1094
15511 : * cdef int (*to_dtype_func)(char *, object) except 0
15512 : *
15513 : * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<<
15514 : * to_object_func = (<_memoryviewslice> memview).to_object_func
15515 : * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
15516 : */
15517 0 : goto __pyx_L3;
15518 : }
15519 :
15520 : /* "View.MemoryView":1098
15521 : * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func
15522 : * else:
15523 : * to_object_func = NULL # <<<<<<<<<<<<<<
15524 : * to_dtype_func = NULL
15525 : *
15526 : */
15527 : /*else*/ {
15528 : __pyx_v_to_object_func = NULL;
15529 :
15530 : /* "View.MemoryView":1099
15531 : * else:
15532 : * to_object_func = NULL
15533 : * to_dtype_func = NULL # <<<<<<<<<<<<<<
15534 : *
15535 : * return memoryview_fromslice(memviewslice[0], memview.view.ndim,
15536 : */
15537 : __pyx_v_to_dtype_func = NULL;
15538 : }
15539 0 : __pyx_L3:;
15540 :
15541 : /* "View.MemoryView":1101
15542 : * to_dtype_func = NULL
15543 : *
15544 : * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<<
15545 : * to_object_func, to_dtype_func,
15546 : * memview.dtype_is_object)
15547 : */
15548 0 : __Pyx_XDECREF(__pyx_r);
15549 :
15550 : /* "View.MemoryView":1103
15551 : * return memoryview_fromslice(memviewslice[0], memview.view.ndim,
15552 : * to_object_func, to_dtype_func,
15553 : * memview.dtype_is_object) # <<<<<<<<<<<<<<
15554 : *
15555 : *
15556 : */
15557 0 : __pyx_t_4 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1101, __pyx_L1_error)
15558 0 : __Pyx_GOTREF(__pyx_t_4);
15559 0 : __pyx_r = __pyx_t_4;
15560 0 : __pyx_t_4 = 0;
15561 0 : goto __pyx_L0;
15562 :
15563 : /* "View.MemoryView":1087
15564 : *
15565 : * @cname('__pyx_memoryview_copy_object_from_slice')
15566 : * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<<
15567 : * """
15568 : * Create a new memoryview object from a given memoryview object and slice.
15569 : */
15570 :
15571 : /* function exit code */
15572 0 : __pyx_L1_error:;
15573 0 : __Pyx_XDECREF(__pyx_t_4);
15574 0 : __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename);
15575 0 : __pyx_r = 0;
15576 0 : __pyx_L0:;
15577 0 : __Pyx_XGIVEREF(__pyx_r);
15578 0 : __Pyx_RefNannyFinishContext();
15579 0 : return __pyx_r;
15580 : }
15581 :
15582 : /* "View.MemoryView":1109
15583 : *
15584 : *
15585 : * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil: # <<<<<<<<<<<<<<
15586 : * return -arg if arg < 0 else arg
15587 : *
15588 : */
15589 :
15590 0 : static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) {
15591 0 : Py_ssize_t __pyx_r;
15592 0 : Py_ssize_t __pyx_t_1;
15593 0 : int __pyx_t_2;
15594 :
15595 : /* "View.MemoryView":1110
15596 : *
15597 : * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil:
15598 : * return -arg if arg < 0 else arg # <<<<<<<<<<<<<<
15599 : *
15600 : * @cname('__pyx_get_best_slice_order')
15601 : */
15602 0 : __pyx_t_2 = (__pyx_v_arg < 0);
15603 0 : if (__pyx_t_2) {
15604 : __pyx_t_1 = (-__pyx_v_arg);
15605 : } else {
15606 : __pyx_t_1 = __pyx_v_arg;
15607 : }
15608 0 : __pyx_r = __pyx_t_1;
15609 0 : goto __pyx_L0;
15610 :
15611 : /* "View.MemoryView":1109
15612 : *
15613 : *
15614 : * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) noexcept nogil: # <<<<<<<<<<<<<<
15615 : * return -arg if arg < 0 else arg
15616 : *
15617 : */
15618 :
15619 : /* function exit code */
15620 0 : __pyx_L0:;
15621 0 : return __pyx_r;
15622 : }
15623 :
15624 : /* "View.MemoryView":1113
15625 : *
15626 : * @cname('__pyx_get_best_slice_order')
15627 : * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil: # <<<<<<<<<<<<<<
15628 : * """
15629 : * Figure out the best memory access order for a given slice.
15630 : */
15631 :
15632 0 : static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) {
15633 0 : int __pyx_v_i;
15634 0 : Py_ssize_t __pyx_v_c_stride;
15635 0 : Py_ssize_t __pyx_v_f_stride;
15636 0 : char __pyx_r;
15637 0 : int __pyx_t_1;
15638 0 : int __pyx_t_2;
15639 0 : int __pyx_t_3;
15640 0 : int __pyx_t_4;
15641 :
15642 : /* "View.MemoryView":1118
15643 : * """
15644 : * cdef int i
15645 : * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<<
15646 : * cdef Py_ssize_t f_stride = 0
15647 : *
15648 : */
15649 0 : __pyx_v_c_stride = 0;
15650 :
15651 : /* "View.MemoryView":1119
15652 : * cdef int i
15653 : * cdef Py_ssize_t c_stride = 0
15654 : * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<<
15655 : *
15656 : * for i in range(ndim - 1, -1, -1):
15657 : */
15658 0 : __pyx_v_f_stride = 0;
15659 :
15660 : /* "View.MemoryView":1121
15661 : * cdef Py_ssize_t f_stride = 0
15662 : *
15663 : * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
15664 : * if mslice.shape[i] > 1:
15665 : * c_stride = mslice.strides[i]
15666 : */
15667 0 : for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
15668 0 : __pyx_v_i = __pyx_t_1;
15669 :
15670 : /* "View.MemoryView":1122
15671 : *
15672 : * for i in range(ndim - 1, -1, -1):
15673 : * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
15674 : * c_stride = mslice.strides[i]
15675 : * break
15676 : */
15677 0 : __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
15678 0 : if (__pyx_t_2) {
15679 :
15680 : /* "View.MemoryView":1123
15681 : * for i in range(ndim - 1, -1, -1):
15682 : * if mslice.shape[i] > 1:
15683 : * c_stride = mslice.strides[i] # <<<<<<<<<<<<<<
15684 : * break
15685 : *
15686 : */
15687 0 : __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
15688 :
15689 : /* "View.MemoryView":1124
15690 : * if mslice.shape[i] > 1:
15691 : * c_stride = mslice.strides[i]
15692 : * break # <<<<<<<<<<<<<<
15693 : *
15694 : * for i in range(ndim):
15695 : */
15696 0 : goto __pyx_L4_break;
15697 :
15698 : /* "View.MemoryView":1122
15699 : *
15700 : * for i in range(ndim - 1, -1, -1):
15701 : * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
15702 : * c_stride = mslice.strides[i]
15703 : * break
15704 : */
15705 : }
15706 : }
15707 0 : __pyx_L4_break:;
15708 :
15709 : /* "View.MemoryView":1126
15710 : * break
15711 : *
15712 : * for i in range(ndim): # <<<<<<<<<<<<<<
15713 : * if mslice.shape[i] > 1:
15714 : * f_stride = mslice.strides[i]
15715 : */
15716 0 : __pyx_t_1 = __pyx_v_ndim;
15717 0 : __pyx_t_3 = __pyx_t_1;
15718 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
15719 0 : __pyx_v_i = __pyx_t_4;
15720 :
15721 : /* "View.MemoryView":1127
15722 : *
15723 : * for i in range(ndim):
15724 : * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
15725 : * f_stride = mslice.strides[i]
15726 : * break
15727 : */
15728 0 : __pyx_t_2 = ((__pyx_v_mslice->shape[__pyx_v_i]) > 1);
15729 0 : if (__pyx_t_2) {
15730 :
15731 : /* "View.MemoryView":1128
15732 : * for i in range(ndim):
15733 : * if mslice.shape[i] > 1:
15734 : * f_stride = mslice.strides[i] # <<<<<<<<<<<<<<
15735 : * break
15736 : *
15737 : */
15738 0 : __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]);
15739 :
15740 : /* "View.MemoryView":1129
15741 : * if mslice.shape[i] > 1:
15742 : * f_stride = mslice.strides[i]
15743 : * break # <<<<<<<<<<<<<<
15744 : *
15745 : * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
15746 : */
15747 0 : goto __pyx_L7_break;
15748 :
15749 : /* "View.MemoryView":1127
15750 : *
15751 : * for i in range(ndim):
15752 : * if mslice.shape[i] > 1: # <<<<<<<<<<<<<<
15753 : * f_stride = mslice.strides[i]
15754 : * break
15755 : */
15756 : }
15757 : }
15758 0 : __pyx_L7_break:;
15759 :
15760 : /* "View.MemoryView":1131
15761 : * break
15762 : *
15763 : * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<<
15764 : * return 'C'
15765 : * else:
15766 : */
15767 0 : __pyx_t_2 = (abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride));
15768 0 : if (__pyx_t_2) {
15769 :
15770 : /* "View.MemoryView":1132
15771 : *
15772 : * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride):
15773 : * return 'C' # <<<<<<<<<<<<<<
15774 : * else:
15775 : * return 'F'
15776 : */
15777 0 : __pyx_r = 'C';
15778 0 : goto __pyx_L0;
15779 :
15780 : /* "View.MemoryView":1131
15781 : * break
15782 : *
15783 : * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<<
15784 : * return 'C'
15785 : * else:
15786 : */
15787 : }
15788 :
15789 : /* "View.MemoryView":1134
15790 : * return 'C'
15791 : * else:
15792 : * return 'F' # <<<<<<<<<<<<<<
15793 : *
15794 : * @cython.cdivision(True)
15795 : */
15796 : /*else*/ {
15797 0 : __pyx_r = 'F';
15798 0 : goto __pyx_L0;
15799 : }
15800 :
15801 : /* "View.MemoryView":1113
15802 : *
15803 : * @cname('__pyx_get_best_slice_order')
15804 : * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) noexcept nogil: # <<<<<<<<<<<<<<
15805 : * """
15806 : * Figure out the best memory access order for a given slice.
15807 : */
15808 :
15809 : /* function exit code */
15810 0 : __pyx_L0:;
15811 0 : return __pyx_r;
15812 : }
15813 :
15814 : /* "View.MemoryView":1137
15815 : *
15816 : * @cython.cdivision(True)
15817 : * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<<
15818 : * char *dst_data, Py_ssize_t *dst_strides,
15819 : * Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
15820 : */
15821 :
15822 0 : static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
15823 0 : CYTHON_UNUSED Py_ssize_t __pyx_v_i;
15824 0 : CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent;
15825 0 : Py_ssize_t __pyx_v_dst_extent;
15826 0 : Py_ssize_t __pyx_v_src_stride;
15827 0 : Py_ssize_t __pyx_v_dst_stride;
15828 0 : int __pyx_t_1;
15829 0 : int __pyx_t_2;
15830 0 : Py_ssize_t __pyx_t_3;
15831 0 : Py_ssize_t __pyx_t_4;
15832 0 : Py_ssize_t __pyx_t_5;
15833 :
15834 : /* "View.MemoryView":1144
15835 : *
15836 : * cdef Py_ssize_t i
15837 : * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<<
15838 : * cdef Py_ssize_t dst_extent = dst_shape[0]
15839 : * cdef Py_ssize_t src_stride = src_strides[0]
15840 : */
15841 0 : __pyx_v_src_extent = (__pyx_v_src_shape[0]);
15842 :
15843 : /* "View.MemoryView":1145
15844 : * cdef Py_ssize_t i
15845 : * cdef Py_ssize_t src_extent = src_shape[0]
15846 : * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<<
15847 : * cdef Py_ssize_t src_stride = src_strides[0]
15848 : * cdef Py_ssize_t dst_stride = dst_strides[0]
15849 : */
15850 0 : __pyx_v_dst_extent = (__pyx_v_dst_shape[0]);
15851 :
15852 : /* "View.MemoryView":1146
15853 : * cdef Py_ssize_t src_extent = src_shape[0]
15854 : * cdef Py_ssize_t dst_extent = dst_shape[0]
15855 : * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<<
15856 : * cdef Py_ssize_t dst_stride = dst_strides[0]
15857 : *
15858 : */
15859 0 : __pyx_v_src_stride = (__pyx_v_src_strides[0]);
15860 :
15861 : /* "View.MemoryView":1147
15862 : * cdef Py_ssize_t dst_extent = dst_shape[0]
15863 : * cdef Py_ssize_t src_stride = src_strides[0]
15864 : * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<<
15865 : *
15866 : * if ndim == 1:
15867 : */
15868 0 : __pyx_v_dst_stride = (__pyx_v_dst_strides[0]);
15869 :
15870 : /* "View.MemoryView":1149
15871 : * cdef Py_ssize_t dst_stride = dst_strides[0]
15872 : *
15873 : * if ndim == 1: # <<<<<<<<<<<<<<
15874 : * if (src_stride > 0 and dst_stride > 0 and
15875 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15876 : */
15877 0 : __pyx_t_1 = (__pyx_v_ndim == 1);
15878 0 : if (__pyx_t_1) {
15879 :
15880 : /* "View.MemoryView":1150
15881 : *
15882 : * if ndim == 1:
15883 : * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
15884 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15885 : * memcpy(dst_data, src_data, itemsize * dst_extent)
15886 : */
15887 0 : __pyx_t_2 = (__pyx_v_src_stride > 0);
15888 0 : if (__pyx_t_2) {
15889 0 : } else {
15890 0 : __pyx_t_1 = __pyx_t_2;
15891 0 : goto __pyx_L5_bool_binop_done;
15892 : }
15893 0 : __pyx_t_2 = (__pyx_v_dst_stride > 0);
15894 0 : if (__pyx_t_2) {
15895 0 : } else {
15896 0 : __pyx_t_1 = __pyx_t_2;
15897 0 : goto __pyx_L5_bool_binop_done;
15898 : }
15899 :
15900 : /* "View.MemoryView":1151
15901 : * if ndim == 1:
15902 : * if (src_stride > 0 and dst_stride > 0 and
15903 : * <size_t> src_stride == itemsize == <size_t> dst_stride): # <<<<<<<<<<<<<<
15904 : * memcpy(dst_data, src_data, itemsize * dst_extent)
15905 : * else:
15906 : */
15907 0 : __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize);
15908 0 : if (__pyx_t_2) {
15909 0 : __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride));
15910 : }
15911 : __pyx_t_1 = __pyx_t_2;
15912 0 : __pyx_L5_bool_binop_done:;
15913 :
15914 : /* "View.MemoryView":1150
15915 : *
15916 : * if ndim == 1:
15917 : * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
15918 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15919 : * memcpy(dst_data, src_data, itemsize * dst_extent)
15920 : */
15921 0 : if (__pyx_t_1) {
15922 :
15923 : /* "View.MemoryView":1152
15924 : * if (src_stride > 0 and dst_stride > 0 and
15925 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15926 : * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<<
15927 : * else:
15928 : * for i in range(dst_extent):
15929 : */
15930 0 : (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent)));
15931 :
15932 : /* "View.MemoryView":1150
15933 : *
15934 : * if ndim == 1:
15935 : * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<<
15936 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15937 : * memcpy(dst_data, src_data, itemsize * dst_extent)
15938 : */
15939 0 : goto __pyx_L4;
15940 : }
15941 :
15942 : /* "View.MemoryView":1154
15943 : * memcpy(dst_data, src_data, itemsize * dst_extent)
15944 : * else:
15945 : * for i in range(dst_extent): # <<<<<<<<<<<<<<
15946 : * memcpy(dst_data, src_data, itemsize)
15947 : * src_data += src_stride
15948 : */
15949 : /*else*/ {
15950 : __pyx_t_3 = __pyx_v_dst_extent;
15951 : __pyx_t_4 = __pyx_t_3;
15952 0 : for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
15953 0 : __pyx_v_i = __pyx_t_5;
15954 :
15955 : /* "View.MemoryView":1155
15956 : * else:
15957 : * for i in range(dst_extent):
15958 : * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<<
15959 : * src_data += src_stride
15960 : * dst_data += dst_stride
15961 : */
15962 0 : (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize));
15963 :
15964 : /* "View.MemoryView":1156
15965 : * for i in range(dst_extent):
15966 : * memcpy(dst_data, src_data, itemsize)
15967 : * src_data += src_stride # <<<<<<<<<<<<<<
15968 : * dst_data += dst_stride
15969 : * else:
15970 : */
15971 0 : __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
15972 :
15973 : /* "View.MemoryView":1157
15974 : * memcpy(dst_data, src_data, itemsize)
15975 : * src_data += src_stride
15976 : * dst_data += dst_stride # <<<<<<<<<<<<<<
15977 : * else:
15978 : * for i in range(dst_extent):
15979 : */
15980 0 : __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
15981 : }
15982 : }
15983 0 : __pyx_L4:;
15984 :
15985 : /* "View.MemoryView":1149
15986 : * cdef Py_ssize_t dst_stride = dst_strides[0]
15987 : *
15988 : * if ndim == 1: # <<<<<<<<<<<<<<
15989 : * if (src_stride > 0 and dst_stride > 0 and
15990 : * <size_t> src_stride == itemsize == <size_t> dst_stride):
15991 : */
15992 0 : goto __pyx_L3;
15993 : }
15994 :
15995 : /* "View.MemoryView":1159
15996 : * dst_data += dst_stride
15997 : * else:
15998 : * for i in range(dst_extent): # <<<<<<<<<<<<<<
15999 : * _copy_strided_to_strided(src_data, src_strides + 1,
16000 : * dst_data, dst_strides + 1,
16001 : */
16002 : /*else*/ {
16003 : __pyx_t_3 = __pyx_v_dst_extent;
16004 : __pyx_t_4 = __pyx_t_3;
16005 0 : for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
16006 0 : __pyx_v_i = __pyx_t_5;
16007 :
16008 : /* "View.MemoryView":1160
16009 : * else:
16010 : * for i in range(dst_extent):
16011 : * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<<
16012 : * dst_data, dst_strides + 1,
16013 : * src_shape + 1, dst_shape + 1,
16014 : */
16015 0 : _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize);
16016 :
16017 : /* "View.MemoryView":1164
16018 : * src_shape + 1, dst_shape + 1,
16019 : * ndim - 1, itemsize)
16020 : * src_data += src_stride # <<<<<<<<<<<<<<
16021 : * dst_data += dst_stride
16022 : *
16023 : */
16024 0 : __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride);
16025 :
16026 : /* "View.MemoryView":1165
16027 : * ndim - 1, itemsize)
16028 : * src_data += src_stride
16029 : * dst_data += dst_stride # <<<<<<<<<<<<<<
16030 : *
16031 : * cdef void copy_strided_to_strided(__Pyx_memviewslice *src,
16032 : */
16033 0 : __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride);
16034 : }
16035 : }
16036 0 : __pyx_L3:;
16037 :
16038 : /* "View.MemoryView":1137
16039 : *
16040 : * @cython.cdivision(True)
16041 : * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<<
16042 : * char *dst_data, Py_ssize_t *dst_strides,
16043 : * Py_ssize_t *src_shape, Py_ssize_t *dst_shape,
16044 : */
16045 :
16046 : /* function exit code */
16047 0 : }
16048 :
16049 : /* "View.MemoryView":1167
16050 : * dst_data += dst_stride
16051 : *
16052 : * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
16053 : * __Pyx_memviewslice *dst,
16054 : * int ndim, size_t itemsize) noexcept nogil:
16055 : */
16056 :
16057 0 : static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) {
16058 :
16059 : /* "View.MemoryView":1170
16060 : * __Pyx_memviewslice *dst,
16061 : * int ndim, size_t itemsize) noexcept nogil:
16062 : * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<<
16063 : * src.shape, dst.shape, ndim, itemsize)
16064 : *
16065 : */
16066 0 : _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize);
16067 :
16068 : /* "View.MemoryView":1167
16069 : * dst_data += dst_stride
16070 : *
16071 : * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
16072 : * __Pyx_memviewslice *dst,
16073 : * int ndim, size_t itemsize) noexcept nogil:
16074 : */
16075 :
16076 : /* function exit code */
16077 0 : }
16078 :
16079 : /* "View.MemoryView":1174
16080 : *
16081 : * @cname('__pyx_memoryview_slice_get_size')
16082 : * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil: # <<<<<<<<<<<<<<
16083 : * "Return the size of the memory occupied by the slice in number of bytes"
16084 : * cdef Py_ssize_t shape, size = src.memview.view.itemsize
16085 : */
16086 :
16087 0 : static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) {
16088 0 : Py_ssize_t __pyx_v_shape;
16089 0 : Py_ssize_t __pyx_v_size;
16090 0 : Py_ssize_t __pyx_r;
16091 0 : Py_ssize_t __pyx_t_1;
16092 0 : Py_ssize_t *__pyx_t_2;
16093 0 : Py_ssize_t *__pyx_t_3;
16094 0 : Py_ssize_t *__pyx_t_4;
16095 :
16096 : /* "View.MemoryView":1176
16097 : * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil:
16098 : * "Return the size of the memory occupied by the slice in number of bytes"
16099 : * cdef Py_ssize_t shape, size = src.memview.view.itemsize # <<<<<<<<<<<<<<
16100 : *
16101 : * for shape in src.shape[:ndim]:
16102 : */
16103 0 : __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
16104 0 : __pyx_v_size = __pyx_t_1;
16105 :
16106 : /* "View.MemoryView":1178
16107 : * cdef Py_ssize_t shape, size = src.memview.view.itemsize
16108 : *
16109 : * for shape in src.shape[:ndim]: # <<<<<<<<<<<<<<
16110 : * size *= shape
16111 : *
16112 : */
16113 0 : __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim);
16114 0 : for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
16115 0 : __pyx_t_2 = __pyx_t_4;
16116 0 : __pyx_v_shape = (__pyx_t_2[0]);
16117 :
16118 : /* "View.MemoryView":1179
16119 : *
16120 : * for shape in src.shape[:ndim]:
16121 : * size *= shape # <<<<<<<<<<<<<<
16122 : *
16123 : * return size
16124 : */
16125 0 : __pyx_v_size = (__pyx_v_size * __pyx_v_shape);
16126 : }
16127 :
16128 : /* "View.MemoryView":1181
16129 : * size *= shape
16130 : *
16131 : * return size # <<<<<<<<<<<<<<
16132 : *
16133 : * @cname('__pyx_fill_contig_strides_array')
16134 : */
16135 0 : __pyx_r = __pyx_v_size;
16136 0 : goto __pyx_L0;
16137 :
16138 : /* "View.MemoryView":1174
16139 : *
16140 : * @cname('__pyx_memoryview_slice_get_size')
16141 : * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) noexcept nogil: # <<<<<<<<<<<<<<
16142 : * "Return the size of the memory occupied by the slice in number of bytes"
16143 : * cdef Py_ssize_t shape, size = src.memview.view.itemsize
16144 : */
16145 :
16146 : /* function exit code */
16147 0 : __pyx_L0:;
16148 0 : return __pyx_r;
16149 : }
16150 :
16151 : /* "View.MemoryView":1184
16152 : *
16153 : * @cname('__pyx_fill_contig_strides_array')
16154 : * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<<
16155 : * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
16156 : * int ndim, char order) noexcept nogil:
16157 : */
16158 :
16159 0 : static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) {
16160 0 : int __pyx_v_idx;
16161 0 : Py_ssize_t __pyx_r;
16162 0 : int __pyx_t_1;
16163 0 : int __pyx_t_2;
16164 0 : int __pyx_t_3;
16165 0 : int __pyx_t_4;
16166 :
16167 : /* "View.MemoryView":1193
16168 : * cdef int idx
16169 : *
16170 : * if order == 'F': # <<<<<<<<<<<<<<
16171 : * for idx in range(ndim):
16172 : * strides[idx] = stride
16173 : */
16174 0 : __pyx_t_1 = (__pyx_v_order == 'F');
16175 0 : if (__pyx_t_1) {
16176 :
16177 : /* "View.MemoryView":1194
16178 : *
16179 : * if order == 'F':
16180 : * for idx in range(ndim): # <<<<<<<<<<<<<<
16181 : * strides[idx] = stride
16182 : * stride *= shape[idx]
16183 : */
16184 0 : __pyx_t_2 = __pyx_v_ndim;
16185 : __pyx_t_3 = __pyx_t_2;
16186 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
16187 0 : __pyx_v_idx = __pyx_t_4;
16188 :
16189 : /* "View.MemoryView":1195
16190 : * if order == 'F':
16191 : * for idx in range(ndim):
16192 : * strides[idx] = stride # <<<<<<<<<<<<<<
16193 : * stride *= shape[idx]
16194 : * else:
16195 : */
16196 0 : (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
16197 :
16198 : /* "View.MemoryView":1196
16199 : * for idx in range(ndim):
16200 : * strides[idx] = stride
16201 : * stride *= shape[idx] # <<<<<<<<<<<<<<
16202 : * else:
16203 : * for idx in range(ndim - 1, -1, -1):
16204 : */
16205 0 : __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
16206 : }
16207 :
16208 : /* "View.MemoryView":1193
16209 : * cdef int idx
16210 : *
16211 : * if order == 'F': # <<<<<<<<<<<<<<
16212 : * for idx in range(ndim):
16213 : * strides[idx] = stride
16214 : */
16215 0 : goto __pyx_L3;
16216 : }
16217 :
16218 : /* "View.MemoryView":1198
16219 : * stride *= shape[idx]
16220 : * else:
16221 : * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
16222 : * strides[idx] = stride
16223 : * stride *= shape[idx]
16224 : */
16225 : /*else*/ {
16226 0 : for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) {
16227 0 : __pyx_v_idx = __pyx_t_2;
16228 :
16229 : /* "View.MemoryView":1199
16230 : * else:
16231 : * for idx in range(ndim - 1, -1, -1):
16232 : * strides[idx] = stride # <<<<<<<<<<<<<<
16233 : * stride *= shape[idx]
16234 : *
16235 : */
16236 0 : (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride;
16237 :
16238 : /* "View.MemoryView":1200
16239 : * for idx in range(ndim - 1, -1, -1):
16240 : * strides[idx] = stride
16241 : * stride *= shape[idx] # <<<<<<<<<<<<<<
16242 : *
16243 : * return stride
16244 : */
16245 0 : __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx]));
16246 : }
16247 : }
16248 0 : __pyx_L3:;
16249 :
16250 : /* "View.MemoryView":1202
16251 : * stride *= shape[idx]
16252 : *
16253 : * return stride # <<<<<<<<<<<<<<
16254 : *
16255 : * @cname('__pyx_memoryview_copy_data_to_temp')
16256 : */
16257 0 : __pyx_r = __pyx_v_stride;
16258 0 : goto __pyx_L0;
16259 :
16260 : /* "View.MemoryView":1184
16261 : *
16262 : * @cname('__pyx_fill_contig_strides_array')
16263 : * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<<
16264 : * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride,
16265 : * int ndim, char order) noexcept nogil:
16266 : */
16267 :
16268 : /* function exit code */
16269 0 : __pyx_L0:;
16270 0 : return __pyx_r;
16271 : }
16272 :
16273 : /* "View.MemoryView":1205
16274 : *
16275 : * @cname('__pyx_memoryview_copy_data_to_temp')
16276 : * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
16277 : * __Pyx_memviewslice *tmpslice,
16278 : * char order,
16279 : */
16280 :
16281 0 : static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) {
16282 0 : int __pyx_v_i;
16283 0 : void *__pyx_v_result;
16284 0 : size_t __pyx_v_itemsize;
16285 0 : size_t __pyx_v_size;
16286 0 : void *__pyx_r;
16287 0 : Py_ssize_t __pyx_t_1;
16288 0 : int __pyx_t_2;
16289 0 : int __pyx_t_3;
16290 0 : struct __pyx_memoryview_obj *__pyx_t_4;
16291 0 : int __pyx_t_5;
16292 0 : int __pyx_t_6;
16293 0 : int __pyx_lineno = 0;
16294 0 : const char *__pyx_filename = NULL;
16295 0 : int __pyx_clineno = 0;
16296 : #ifdef WITH_THREAD
16297 0 : PyGILState_STATE __pyx_gilstate_save;
16298 : #endif
16299 :
16300 : /* "View.MemoryView":1216
16301 : * cdef void *result
16302 : *
16303 : * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<<
16304 : * cdef size_t size = slice_get_size(src, ndim)
16305 : *
16306 : */
16307 0 : __pyx_t_1 = __pyx_v_src->memview->view.itemsize;
16308 0 : __pyx_v_itemsize = __pyx_t_1;
16309 :
16310 : /* "View.MemoryView":1217
16311 : *
16312 : * cdef size_t itemsize = src.memview.view.itemsize
16313 : * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<<
16314 : *
16315 : * result = malloc(size)
16316 : */
16317 0 : __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim);
16318 :
16319 : /* "View.MemoryView":1219
16320 : * cdef size_t size = slice_get_size(src, ndim)
16321 : *
16322 : * result = malloc(size) # <<<<<<<<<<<<<<
16323 : * if not result:
16324 : * _err_no_memory()
16325 : */
16326 0 : __pyx_v_result = malloc(__pyx_v_size);
16327 :
16328 : /* "View.MemoryView":1220
16329 : *
16330 : * result = malloc(size)
16331 : * if not result: # <<<<<<<<<<<<<<
16332 : * _err_no_memory()
16333 : *
16334 : */
16335 0 : __pyx_t_2 = (!(__pyx_v_result != 0));
16336 0 : if (__pyx_t_2) {
16337 :
16338 : /* "View.MemoryView":1221
16339 : * result = malloc(size)
16340 : * if not result:
16341 : * _err_no_memory() # <<<<<<<<<<<<<<
16342 : *
16343 : *
16344 : */
16345 0 : __pyx_t_3 = __pyx_memoryview_err_no_memory(); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 1221, __pyx_L1_error)
16346 :
16347 : /* "View.MemoryView":1220
16348 : *
16349 : * result = malloc(size)
16350 : * if not result: # <<<<<<<<<<<<<<
16351 : * _err_no_memory()
16352 : *
16353 : */
16354 : }
16355 :
16356 : /* "View.MemoryView":1224
16357 : *
16358 : *
16359 : * tmpslice.data = <char *> result # <<<<<<<<<<<<<<
16360 : * tmpslice.memview = src.memview
16361 : * for i in range(ndim):
16362 : */
16363 0 : __pyx_v_tmpslice->data = ((char *)__pyx_v_result);
16364 :
16365 : /* "View.MemoryView":1225
16366 : *
16367 : * tmpslice.data = <char *> result
16368 : * tmpslice.memview = src.memview # <<<<<<<<<<<<<<
16369 : * for i in range(ndim):
16370 : * tmpslice.shape[i] = src.shape[i]
16371 : */
16372 0 : __pyx_t_4 = __pyx_v_src->memview;
16373 0 : __pyx_v_tmpslice->memview = __pyx_t_4;
16374 :
16375 : /* "View.MemoryView":1226
16376 : * tmpslice.data = <char *> result
16377 : * tmpslice.memview = src.memview
16378 : * for i in range(ndim): # <<<<<<<<<<<<<<
16379 : * tmpslice.shape[i] = src.shape[i]
16380 : * tmpslice.suboffsets[i] = -1
16381 : */
16382 0 : __pyx_t_3 = __pyx_v_ndim;
16383 0 : __pyx_t_5 = __pyx_t_3;
16384 0 : for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
16385 0 : __pyx_v_i = __pyx_t_6;
16386 :
16387 : /* "View.MemoryView":1227
16388 : * tmpslice.memview = src.memview
16389 : * for i in range(ndim):
16390 : * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<<
16391 : * tmpslice.suboffsets[i] = -1
16392 : *
16393 : */
16394 0 : (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]);
16395 :
16396 : /* "View.MemoryView":1228
16397 : * for i in range(ndim):
16398 : * tmpslice.shape[i] = src.shape[i]
16399 : * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<<
16400 : *
16401 : * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order)
16402 : */
16403 0 : (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L;
16404 : }
16405 :
16406 : /* "View.MemoryView":1230
16407 : * tmpslice.suboffsets[i] = -1
16408 : *
16409 : * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, ndim, order) # <<<<<<<<<<<<<<
16410 : *
16411 : *
16412 : */
16413 0 : (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order));
16414 :
16415 : /* "View.MemoryView":1233
16416 : *
16417 : *
16418 : * for i in range(ndim): # <<<<<<<<<<<<<<
16419 : * if tmpslice.shape[i] == 1:
16420 : * tmpslice.strides[i] = 0
16421 : */
16422 0 : __pyx_t_3 = __pyx_v_ndim;
16423 0 : __pyx_t_5 = __pyx_t_3;
16424 0 : for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
16425 0 : __pyx_v_i = __pyx_t_6;
16426 :
16427 : /* "View.MemoryView":1234
16428 : *
16429 : * for i in range(ndim):
16430 : * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<<
16431 : * tmpslice.strides[i] = 0
16432 : *
16433 : */
16434 0 : __pyx_t_2 = ((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1);
16435 0 : if (__pyx_t_2) {
16436 :
16437 : /* "View.MemoryView":1235
16438 : * for i in range(ndim):
16439 : * if tmpslice.shape[i] == 1:
16440 : * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<<
16441 : *
16442 : * if slice_is_contig(src[0], order, ndim):
16443 : */
16444 0 : (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0;
16445 :
16446 : /* "View.MemoryView":1234
16447 : *
16448 : * for i in range(ndim):
16449 : * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<<
16450 : * tmpslice.strides[i] = 0
16451 : *
16452 : */
16453 : }
16454 : }
16455 :
16456 : /* "View.MemoryView":1237
16457 : * tmpslice.strides[i] = 0
16458 : *
16459 : * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<<
16460 : * memcpy(result, src.data, size)
16461 : * else:
16462 : */
16463 0 : __pyx_t_2 = __pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim);
16464 0 : if (__pyx_t_2) {
16465 :
16466 : /* "View.MemoryView":1238
16467 : *
16468 : * if slice_is_contig(src[0], order, ndim):
16469 : * memcpy(result, src.data, size) # <<<<<<<<<<<<<<
16470 : * else:
16471 : * copy_strided_to_strided(src, tmpslice, ndim, itemsize)
16472 : */
16473 0 : (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size));
16474 :
16475 : /* "View.MemoryView":1237
16476 : * tmpslice.strides[i] = 0
16477 : *
16478 : * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<<
16479 : * memcpy(result, src.data, size)
16480 : * else:
16481 : */
16482 0 : goto __pyx_L9;
16483 : }
16484 :
16485 : /* "View.MemoryView":1240
16486 : * memcpy(result, src.data, size)
16487 : * else:
16488 : * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<<
16489 : *
16490 : * return result
16491 : */
16492 : /*else*/ {
16493 0 : copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize);
16494 : }
16495 0 : __pyx_L9:;
16496 :
16497 : /* "View.MemoryView":1242
16498 : * copy_strided_to_strided(src, tmpslice, ndim, itemsize)
16499 : *
16500 : * return result # <<<<<<<<<<<<<<
16501 : *
16502 : *
16503 : */
16504 0 : __pyx_r = __pyx_v_result;
16505 0 : goto __pyx_L0;
16506 :
16507 : /* "View.MemoryView":1205
16508 : *
16509 : * @cname('__pyx_memoryview_copy_data_to_temp')
16510 : * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<<
16511 : * __Pyx_memviewslice *tmpslice,
16512 : * char order,
16513 : */
16514 :
16515 : /* function exit code */
16516 0 : __pyx_L1_error:;
16517 : #ifdef WITH_THREAD
16518 0 : __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
16519 : #endif
16520 0 : __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename);
16521 0 : __pyx_r = NULL;
16522 : #ifdef WITH_THREAD
16523 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
16524 : #endif
16525 0 : __pyx_L0:;
16526 0 : return __pyx_r;
16527 : }
16528 :
16529 : /* "View.MemoryView":1247
16530 : *
16531 : * @cname('__pyx_memoryview_err_extents')
16532 : * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<<
16533 : * Py_ssize_t extent2) except -1 with gil:
16534 : * raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
16535 : */
16536 :
16537 0 : static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) {
16538 0 : int __pyx_r;
16539 : __Pyx_RefNannyDeclarations
16540 0 : PyObject *__pyx_t_1 = NULL;
16541 0 : Py_ssize_t __pyx_t_2;
16542 0 : Py_UCS4 __pyx_t_3;
16543 0 : PyObject *__pyx_t_4 = NULL;
16544 0 : int __pyx_lineno = 0;
16545 0 : const char *__pyx_filename = NULL;
16546 0 : int __pyx_clineno = 0;
16547 : #ifdef WITH_THREAD
16548 0 : PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
16549 : #endif
16550 0 : __Pyx_RefNannySetupContext("_err_extents", 0);
16551 :
16552 : /* "View.MemoryView":1249
16553 : * cdef int _err_extents(int i, Py_ssize_t extent1,
16554 : * Py_ssize_t extent2) except -1 with gil:
16555 : * raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})" # <<<<<<<<<<<<<<
16556 : *
16557 : * @cname('__pyx_memoryview_err_dim')
16558 : */
16559 0 : __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1249, __pyx_L1_error)
16560 0 : __Pyx_GOTREF(__pyx_t_1);
16561 0 : __pyx_t_2 = 0;
16562 0 : __pyx_t_3 = 127;
16563 0 : __Pyx_INCREF(__pyx_kp_u_got_differing_extents_in_dimensi);
16564 0 : __pyx_t_2 += 35;
16565 0 : __Pyx_GIVEREF(__pyx_kp_u_got_differing_extents_in_dimensi);
16566 0 : PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_kp_u_got_differing_extents_in_dimensi);
16567 0 : __pyx_t_4 = __Pyx_PyUnicode_From_int(__pyx_v_i, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
16568 0 : __Pyx_GOTREF(__pyx_t_4);
16569 0 : __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
16570 0 : __Pyx_GIVEREF(__pyx_t_4);
16571 0 : PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
16572 0 : __pyx_t_4 = 0;
16573 0 : __Pyx_INCREF(__pyx_kp_u_got);
16574 0 : __pyx_t_2 += 6;
16575 0 : __Pyx_GIVEREF(__pyx_kp_u_got);
16576 0 : PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_kp_u_got);
16577 0 : __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent1, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
16578 0 : __Pyx_GOTREF(__pyx_t_4);
16579 0 : __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
16580 0 : __Pyx_GIVEREF(__pyx_t_4);
16581 0 : PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
16582 0 : __pyx_t_4 = 0;
16583 0 : __Pyx_INCREF(__pyx_kp_u_and);
16584 0 : __pyx_t_2 += 5;
16585 0 : __Pyx_GIVEREF(__pyx_kp_u_and);
16586 0 : PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_kp_u_and);
16587 0 : __pyx_t_4 = __Pyx_PyUnicode_From_Py_ssize_t(__pyx_v_extent2, 0, ' ', 'd'); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
16588 0 : __Pyx_GOTREF(__pyx_t_4);
16589 0 : __pyx_t_2 += __Pyx_PyUnicode_GET_LENGTH(__pyx_t_4);
16590 0 : __Pyx_GIVEREF(__pyx_t_4);
16591 0 : PyTuple_SET_ITEM(__pyx_t_1, 5, __pyx_t_4);
16592 0 : __pyx_t_4 = 0;
16593 0 : __Pyx_INCREF(__pyx_kp_u__7);
16594 0 : __pyx_t_2 += 1;
16595 0 : __Pyx_GIVEREF(__pyx_kp_u__7);
16596 0 : PyTuple_SET_ITEM(__pyx_t_1, 6, __pyx_kp_u__7);
16597 0 : __pyx_t_4 = __Pyx_PyUnicode_Join(__pyx_t_1, 7, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 1249, __pyx_L1_error)
16598 0 : __Pyx_GOTREF(__pyx_t_4);
16599 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16600 0 : __Pyx_Raise(__pyx_builtin_ValueError, __pyx_t_4, 0, 0);
16601 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
16602 0 : __PYX_ERR(1, 1249, __pyx_L1_error)
16603 :
16604 : /* "View.MemoryView":1247
16605 : *
16606 : * @cname('__pyx_memoryview_err_extents')
16607 : * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<<
16608 : * Py_ssize_t extent2) except -1 with gil:
16609 : * raise ValueError, f"got differing extents in dimension {i} (got {extent1} and {extent2})"
16610 : */
16611 :
16612 : /* function exit code */
16613 0 : __pyx_L1_error:;
16614 0 : __Pyx_XDECREF(__pyx_t_1);
16615 0 : __Pyx_XDECREF(__pyx_t_4);
16616 0 : __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename);
16617 0 : __pyx_r = -1;
16618 0 : __Pyx_RefNannyFinishContext();
16619 : #ifdef WITH_THREAD
16620 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
16621 : #endif
16622 0 : return __pyx_r;
16623 : }
16624 :
16625 : /* "View.MemoryView":1252
16626 : *
16627 : * @cname('__pyx_memoryview_err_dim')
16628 : * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil: # <<<<<<<<<<<<<<
16629 : * raise <object>error, msg % dim
16630 : *
16631 : */
16632 :
16633 0 : static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, PyObject *__pyx_v_msg, int __pyx_v_dim) {
16634 0 : int __pyx_r;
16635 : __Pyx_RefNannyDeclarations
16636 0 : PyObject *__pyx_t_1 = NULL;
16637 0 : PyObject *__pyx_t_2 = NULL;
16638 0 : int __pyx_lineno = 0;
16639 0 : const char *__pyx_filename = NULL;
16640 0 : int __pyx_clineno = 0;
16641 : #ifdef WITH_THREAD
16642 0 : PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
16643 : #endif
16644 0 : __Pyx_RefNannySetupContext("_err_dim", 0);
16645 0 : __Pyx_INCREF(__pyx_v_msg);
16646 :
16647 : /* "View.MemoryView":1253
16648 : * @cname('__pyx_memoryview_err_dim')
16649 : * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil:
16650 : * raise <object>error, msg % dim # <<<<<<<<<<<<<<
16651 : *
16652 : * @cname('__pyx_memoryview_err')
16653 : */
16654 0 : __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1253, __pyx_L1_error)
16655 0 : __Pyx_GOTREF(__pyx_t_1);
16656 0 : __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_v_msg, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 1253, __pyx_L1_error)
16657 0 : __Pyx_GOTREF(__pyx_t_2);
16658 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
16659 0 : __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_t_2, 0, 0);
16660 0 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
16661 0 : __PYX_ERR(1, 1253, __pyx_L1_error)
16662 :
16663 : /* "View.MemoryView":1252
16664 : *
16665 : * @cname('__pyx_memoryview_err_dim')
16666 : * cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil: # <<<<<<<<<<<<<<
16667 : * raise <object>error, msg % dim
16668 : *
16669 : */
16670 :
16671 : /* function exit code */
16672 0 : __pyx_L1_error:;
16673 0 : __Pyx_XDECREF(__pyx_t_1);
16674 0 : __Pyx_XDECREF(__pyx_t_2);
16675 0 : __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename);
16676 0 : __pyx_r = -1;
16677 0 : __Pyx_XDECREF(__pyx_v_msg);
16678 0 : __Pyx_RefNannyFinishContext();
16679 : #ifdef WITH_THREAD
16680 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
16681 : #endif
16682 0 : return __pyx_r;
16683 : }
16684 :
16685 : /* "View.MemoryView":1256
16686 : *
16687 : * @cname('__pyx_memoryview_err')
16688 : * cdef int _err(PyObject *error, str msg) except -1 with gil: # <<<<<<<<<<<<<<
16689 : * raise <object>error, msg
16690 : *
16691 : */
16692 :
16693 0 : static int __pyx_memoryview_err(PyObject *__pyx_v_error, PyObject *__pyx_v_msg) {
16694 0 : int __pyx_r;
16695 : __Pyx_RefNannyDeclarations
16696 0 : int __pyx_lineno = 0;
16697 0 : const char *__pyx_filename = NULL;
16698 0 : int __pyx_clineno = 0;
16699 : #ifdef WITH_THREAD
16700 0 : PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
16701 : #endif
16702 0 : __Pyx_RefNannySetupContext("_err", 0);
16703 0 : __Pyx_INCREF(__pyx_v_msg);
16704 :
16705 : /* "View.MemoryView":1257
16706 : * @cname('__pyx_memoryview_err')
16707 : * cdef int _err(PyObject *error, str msg) except -1 with gil:
16708 : * raise <object>error, msg # <<<<<<<<<<<<<<
16709 : *
16710 : * @cname('__pyx_memoryview_err_no_memory')
16711 : */
16712 0 : __Pyx_Raise(((PyObject *)__pyx_v_error), __pyx_v_msg, 0, 0);
16713 0 : __PYX_ERR(1, 1257, __pyx_L1_error)
16714 :
16715 : /* "View.MemoryView":1256
16716 : *
16717 : * @cname('__pyx_memoryview_err')
16718 : * cdef int _err(PyObject *error, str msg) except -1 with gil: # <<<<<<<<<<<<<<
16719 : * raise <object>error, msg
16720 : *
16721 : */
16722 :
16723 : /* function exit code */
16724 0 : __pyx_L1_error:;
16725 0 : __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename);
16726 0 : __pyx_r = -1;
16727 0 : __Pyx_XDECREF(__pyx_v_msg);
16728 0 : __Pyx_RefNannyFinishContext();
16729 : #ifdef WITH_THREAD
16730 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
16731 : #endif
16732 0 : return __pyx_r;
16733 : }
16734 :
16735 : /* "View.MemoryView":1260
16736 : *
16737 : * @cname('__pyx_memoryview_err_no_memory')
16738 : * cdef int _err_no_memory() except -1 with gil: # <<<<<<<<<<<<<<
16739 : * raise MemoryError
16740 : *
16741 : */
16742 :
16743 0 : static int __pyx_memoryview_err_no_memory(void) {
16744 0 : int __pyx_r;
16745 0 : int __pyx_lineno = 0;
16746 0 : const char *__pyx_filename = NULL;
16747 0 : int __pyx_clineno = 0;
16748 : #ifdef WITH_THREAD
16749 0 : PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
16750 : #endif
16751 :
16752 : /* "View.MemoryView":1261
16753 : * @cname('__pyx_memoryview_err_no_memory')
16754 : * cdef int _err_no_memory() except -1 with gil:
16755 : * raise MemoryError # <<<<<<<<<<<<<<
16756 : *
16757 : *
16758 : */
16759 0 : PyErr_NoMemory(); __PYX_ERR(1, 1261, __pyx_L1_error)
16760 :
16761 : /* "View.MemoryView":1260
16762 : *
16763 : * @cname('__pyx_memoryview_err_no_memory')
16764 : * cdef int _err_no_memory() except -1 with gil: # <<<<<<<<<<<<<<
16765 : * raise MemoryError
16766 : *
16767 : */
16768 :
16769 : /* function exit code */
16770 0 : __pyx_L1_error:;
16771 0 : __Pyx_AddTraceback("View.MemoryView._err_no_memory", __pyx_clineno, __pyx_lineno, __pyx_filename);
16772 0 : __pyx_r = -1;
16773 : #ifdef WITH_THREAD
16774 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
16775 : #endif
16776 0 : return __pyx_r;
16777 : }
16778 :
16779 : /* "View.MemoryView":1265
16780 : *
16781 : * @cname('__pyx_memoryview_copy_contents')
16782 : * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<<
16783 : * __Pyx_memviewslice dst,
16784 : * int src_ndim, int dst_ndim,
16785 : */
16786 :
16787 0 : static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) {
16788 0 : void *__pyx_v_tmpdata;
16789 0 : size_t __pyx_v_itemsize;
16790 0 : int __pyx_v_i;
16791 0 : char __pyx_v_order;
16792 0 : int __pyx_v_broadcasting;
16793 0 : int __pyx_v_direct_copy;
16794 0 : __Pyx_memviewslice __pyx_v_tmp;
16795 0 : int __pyx_v_ndim;
16796 0 : int __pyx_r;
16797 0 : Py_ssize_t __pyx_t_1;
16798 0 : int __pyx_t_2;
16799 0 : int __pyx_t_3;
16800 0 : int __pyx_t_4;
16801 0 : int __pyx_t_5;
16802 0 : int __pyx_t_6;
16803 0 : void *__pyx_t_7;
16804 0 : int __pyx_lineno = 0;
16805 0 : const char *__pyx_filename = NULL;
16806 0 : int __pyx_clineno = 0;
16807 : #ifdef WITH_THREAD
16808 0 : PyGILState_STATE __pyx_gilstate_save;
16809 : #endif
16810 :
16811 : /* "View.MemoryView":1273
16812 : * Check for overlapping memory and verify the shapes.
16813 : * """
16814 : * cdef void *tmpdata = NULL # <<<<<<<<<<<<<<
16815 : * cdef size_t itemsize = src.memview.view.itemsize
16816 : * cdef int i
16817 : */
16818 0 : __pyx_v_tmpdata = NULL;
16819 :
16820 : /* "View.MemoryView":1274
16821 : * """
16822 : * cdef void *tmpdata = NULL
16823 : * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<<
16824 : * cdef int i
16825 : * cdef char order = get_best_order(&src, src_ndim)
16826 : */
16827 0 : __pyx_t_1 = __pyx_v_src.memview->view.itemsize;
16828 0 : __pyx_v_itemsize = __pyx_t_1;
16829 :
16830 : /* "View.MemoryView":1276
16831 : * cdef size_t itemsize = src.memview.view.itemsize
16832 : * cdef int i
16833 : * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<<
16834 : * cdef bint broadcasting = False
16835 : * cdef bint direct_copy = False
16836 : */
16837 0 : __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim);
16838 :
16839 : /* "View.MemoryView":1277
16840 : * cdef int i
16841 : * cdef char order = get_best_order(&src, src_ndim)
16842 : * cdef bint broadcasting = False # <<<<<<<<<<<<<<
16843 : * cdef bint direct_copy = False
16844 : * cdef __Pyx_memviewslice tmp
16845 : */
16846 0 : __pyx_v_broadcasting = 0;
16847 :
16848 : /* "View.MemoryView":1278
16849 : * cdef char order = get_best_order(&src, src_ndim)
16850 : * cdef bint broadcasting = False
16851 : * cdef bint direct_copy = False # <<<<<<<<<<<<<<
16852 : * cdef __Pyx_memviewslice tmp
16853 : *
16854 : */
16855 0 : __pyx_v_direct_copy = 0;
16856 :
16857 : /* "View.MemoryView":1281
16858 : * cdef __Pyx_memviewslice tmp
16859 : *
16860 : * if src_ndim < dst_ndim: # <<<<<<<<<<<<<<
16861 : * broadcast_leading(&src, src_ndim, dst_ndim)
16862 : * elif dst_ndim < src_ndim:
16863 : */
16864 0 : __pyx_t_2 = (__pyx_v_src_ndim < __pyx_v_dst_ndim);
16865 0 : if (__pyx_t_2) {
16866 :
16867 : /* "View.MemoryView":1282
16868 : *
16869 : * if src_ndim < dst_ndim:
16870 : * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<<
16871 : * elif dst_ndim < src_ndim:
16872 : * broadcast_leading(&dst, dst_ndim, src_ndim)
16873 : */
16874 0 : __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim);
16875 :
16876 : /* "View.MemoryView":1281
16877 : * cdef __Pyx_memviewslice tmp
16878 : *
16879 : * if src_ndim < dst_ndim: # <<<<<<<<<<<<<<
16880 : * broadcast_leading(&src, src_ndim, dst_ndim)
16881 : * elif dst_ndim < src_ndim:
16882 : */
16883 0 : goto __pyx_L3;
16884 : }
16885 :
16886 : /* "View.MemoryView":1283
16887 : * if src_ndim < dst_ndim:
16888 : * broadcast_leading(&src, src_ndim, dst_ndim)
16889 : * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<<
16890 : * broadcast_leading(&dst, dst_ndim, src_ndim)
16891 : *
16892 : */
16893 0 : __pyx_t_2 = (__pyx_v_dst_ndim < __pyx_v_src_ndim);
16894 0 : if (__pyx_t_2) {
16895 :
16896 : /* "View.MemoryView":1284
16897 : * broadcast_leading(&src, src_ndim, dst_ndim)
16898 : * elif dst_ndim < src_ndim:
16899 : * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<<
16900 : *
16901 : * cdef int ndim = max(src_ndim, dst_ndim)
16902 : */
16903 0 : __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim);
16904 :
16905 : /* "View.MemoryView":1283
16906 : * if src_ndim < dst_ndim:
16907 : * broadcast_leading(&src, src_ndim, dst_ndim)
16908 : * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<<
16909 : * broadcast_leading(&dst, dst_ndim, src_ndim)
16910 : *
16911 : */
16912 : }
16913 0 : __pyx_L3:;
16914 :
16915 : /* "View.MemoryView":1286
16916 : * broadcast_leading(&dst, dst_ndim, src_ndim)
16917 : *
16918 : * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<<
16919 : *
16920 : * for i in range(ndim):
16921 : */
16922 0 : __pyx_t_3 = __pyx_v_dst_ndim;
16923 0 : __pyx_t_4 = __pyx_v_src_ndim;
16924 0 : __pyx_t_2 = (__pyx_t_3 > __pyx_t_4);
16925 0 : if (__pyx_t_2) {
16926 : __pyx_t_5 = __pyx_t_3;
16927 : } else {
16928 : __pyx_t_5 = __pyx_t_4;
16929 : }
16930 0 : __pyx_v_ndim = __pyx_t_5;
16931 :
16932 : /* "View.MemoryView":1288
16933 : * cdef int ndim = max(src_ndim, dst_ndim)
16934 : *
16935 : * for i in range(ndim): # <<<<<<<<<<<<<<
16936 : * if src.shape[i] != dst.shape[i]:
16937 : * if src.shape[i] == 1:
16938 : */
16939 0 : __pyx_t_5 = __pyx_v_ndim;
16940 0 : __pyx_t_3 = __pyx_t_5;
16941 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
16942 0 : __pyx_v_i = __pyx_t_4;
16943 :
16944 : /* "View.MemoryView":1289
16945 : *
16946 : * for i in range(ndim):
16947 : * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<<
16948 : * if src.shape[i] == 1:
16949 : * broadcasting = True
16950 : */
16951 0 : __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i]));
16952 0 : if (__pyx_t_2) {
16953 :
16954 : /* "View.MemoryView":1290
16955 : * for i in range(ndim):
16956 : * if src.shape[i] != dst.shape[i]:
16957 : * if src.shape[i] == 1: # <<<<<<<<<<<<<<
16958 : * broadcasting = True
16959 : * src.strides[i] = 0
16960 : */
16961 0 : __pyx_t_2 = ((__pyx_v_src.shape[__pyx_v_i]) == 1);
16962 0 : if (__pyx_t_2) {
16963 :
16964 : /* "View.MemoryView":1291
16965 : * if src.shape[i] != dst.shape[i]:
16966 : * if src.shape[i] == 1:
16967 : * broadcasting = True # <<<<<<<<<<<<<<
16968 : * src.strides[i] = 0
16969 : * else:
16970 : */
16971 0 : __pyx_v_broadcasting = 1;
16972 :
16973 : /* "View.MemoryView":1292
16974 : * if src.shape[i] == 1:
16975 : * broadcasting = True
16976 : * src.strides[i] = 0 # <<<<<<<<<<<<<<
16977 : * else:
16978 : * _err_extents(i, dst.shape[i], src.shape[i])
16979 : */
16980 0 : (__pyx_v_src.strides[__pyx_v_i]) = 0;
16981 :
16982 : /* "View.MemoryView":1290
16983 : * for i in range(ndim):
16984 : * if src.shape[i] != dst.shape[i]:
16985 : * if src.shape[i] == 1: # <<<<<<<<<<<<<<
16986 : * broadcasting = True
16987 : * src.strides[i] = 0
16988 : */
16989 0 : goto __pyx_L7;
16990 : }
16991 :
16992 : /* "View.MemoryView":1294
16993 : * src.strides[i] = 0
16994 : * else:
16995 : * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<<
16996 : *
16997 : * if src.suboffsets[i] >= 0:
16998 : */
16999 : /*else*/ {
17000 0 : __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1294, __pyx_L1_error)
17001 : }
17002 0 : __pyx_L7:;
17003 :
17004 : /* "View.MemoryView":1289
17005 : *
17006 : * for i in range(ndim):
17007 : * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<<
17008 : * if src.shape[i] == 1:
17009 : * broadcasting = True
17010 : */
17011 : }
17012 :
17013 : /* "View.MemoryView":1296
17014 : * _err_extents(i, dst.shape[i], src.shape[i])
17015 : *
17016 : * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<<
17017 : * _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
17018 : *
17019 : */
17020 0 : __pyx_t_2 = ((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0);
17021 0 : if (__pyx_t_2) {
17022 :
17023 : /* "View.MemoryView":1297
17024 : *
17025 : * if src.suboffsets[i] >= 0:
17026 : * _err_dim(PyExc_ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<<
17027 : *
17028 : * if slices_overlap(&src, &dst, ndim, itemsize):
17029 : */
17030 0 : __pyx_t_6 = __pyx_memoryview_err_dim(PyExc_ValueError, __pyx_kp_s_Dimension_d_is_not_direct, __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(1, 1297, __pyx_L1_error)
17031 :
17032 : /* "View.MemoryView":1296
17033 : * _err_extents(i, dst.shape[i], src.shape[i])
17034 : *
17035 : * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<<
17036 : * _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
17037 : *
17038 : */
17039 : }
17040 : }
17041 :
17042 : /* "View.MemoryView":1299
17043 : * _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
17044 : *
17045 : * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<<
17046 : *
17047 : * if not slice_is_contig(src, order, ndim):
17048 : */
17049 0 : __pyx_t_2 = __pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
17050 0 : if (__pyx_t_2) {
17051 :
17052 : /* "View.MemoryView":1301
17053 : * if slices_overlap(&src, &dst, ndim, itemsize):
17054 : *
17055 : * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<<
17056 : * order = get_best_order(&dst, ndim)
17057 : *
17058 : */
17059 0 : __pyx_t_2 = (!__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim));
17060 0 : if (__pyx_t_2) {
17061 :
17062 : /* "View.MemoryView":1302
17063 : *
17064 : * if not slice_is_contig(src, order, ndim):
17065 : * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<<
17066 : *
17067 : * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
17068 : */
17069 0 : __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim);
17070 :
17071 : /* "View.MemoryView":1301
17072 : * if slices_overlap(&src, &dst, ndim, itemsize):
17073 : *
17074 : * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<<
17075 : * order = get_best_order(&dst, ndim)
17076 : *
17077 : */
17078 : }
17079 :
17080 : /* "View.MemoryView":1304
17081 : * order = get_best_order(&dst, ndim)
17082 : *
17083 : * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<<
17084 : * src = tmp
17085 : *
17086 : */
17087 0 : __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(1, 1304, __pyx_L1_error)
17088 0 : __pyx_v_tmpdata = __pyx_t_7;
17089 :
17090 : /* "View.MemoryView":1305
17091 : *
17092 : * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim)
17093 : * src = tmp # <<<<<<<<<<<<<<
17094 : *
17095 : * if not broadcasting:
17096 : */
17097 0 : __pyx_v_src = __pyx_v_tmp;
17098 :
17099 : /* "View.MemoryView":1299
17100 : * _err_dim(PyExc_ValueError, "Dimension %d is not direct", i)
17101 : *
17102 : * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<<
17103 : *
17104 : * if not slice_is_contig(src, order, ndim):
17105 : */
17106 : }
17107 :
17108 : /* "View.MemoryView":1307
17109 : * src = tmp
17110 : *
17111 : * if not broadcasting: # <<<<<<<<<<<<<<
17112 : *
17113 : *
17114 : */
17115 0 : __pyx_t_2 = (!__pyx_v_broadcasting);
17116 0 : if (__pyx_t_2) {
17117 :
17118 : /* "View.MemoryView":1310
17119 : *
17120 : *
17121 : * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<<
17122 : * direct_copy = slice_is_contig(dst, 'C', ndim)
17123 : * elif slice_is_contig(src, 'F', ndim):
17124 : */
17125 0 : __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim);
17126 0 : if (__pyx_t_2) {
17127 :
17128 : /* "View.MemoryView":1311
17129 : *
17130 : * if slice_is_contig(src, 'C', ndim):
17131 : * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<<
17132 : * elif slice_is_contig(src, 'F', ndim):
17133 : * direct_copy = slice_is_contig(dst, 'F', ndim)
17134 : */
17135 0 : __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim);
17136 :
17137 : /* "View.MemoryView":1310
17138 : *
17139 : *
17140 : * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<<
17141 : * direct_copy = slice_is_contig(dst, 'C', ndim)
17142 : * elif slice_is_contig(src, 'F', ndim):
17143 : */
17144 0 : goto __pyx_L12;
17145 : }
17146 :
17147 : /* "View.MemoryView":1312
17148 : * if slice_is_contig(src, 'C', ndim):
17149 : * direct_copy = slice_is_contig(dst, 'C', ndim)
17150 : * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<<
17151 : * direct_copy = slice_is_contig(dst, 'F', ndim)
17152 : *
17153 : */
17154 0 : __pyx_t_2 = __pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim);
17155 0 : if (__pyx_t_2) {
17156 :
17157 : /* "View.MemoryView":1313
17158 : * direct_copy = slice_is_contig(dst, 'C', ndim)
17159 : * elif slice_is_contig(src, 'F', ndim):
17160 : * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<<
17161 : *
17162 : * if direct_copy:
17163 : */
17164 0 : __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim);
17165 :
17166 : /* "View.MemoryView":1312
17167 : * if slice_is_contig(src, 'C', ndim):
17168 : * direct_copy = slice_is_contig(dst, 'C', ndim)
17169 : * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<<
17170 : * direct_copy = slice_is_contig(dst, 'F', ndim)
17171 : *
17172 : */
17173 : }
17174 0 : __pyx_L12:;
17175 :
17176 : /* "View.MemoryView":1315
17177 : * direct_copy = slice_is_contig(dst, 'F', ndim)
17178 : *
17179 : * if direct_copy: # <<<<<<<<<<<<<<
17180 : *
17181 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17182 : */
17183 0 : if (__pyx_v_direct_copy) {
17184 :
17185 : /* "View.MemoryView":1317
17186 : * if direct_copy:
17187 : *
17188 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False) # <<<<<<<<<<<<<<
17189 : * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
17190 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17191 : */
17192 0 : __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
17193 :
17194 : /* "View.MemoryView":1318
17195 : *
17196 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17197 : * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<<
17198 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17199 : * free(tmpdata)
17200 : */
17201 0 : (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim)));
17202 :
17203 : /* "View.MemoryView":1319
17204 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17205 : * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
17206 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True) # <<<<<<<<<<<<<<
17207 : * free(tmpdata)
17208 : * return 0
17209 : */
17210 0 : __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
17211 :
17212 : /* "View.MemoryView":1320
17213 : * memcpy(dst.data, src.data, slice_get_size(&src, ndim))
17214 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17215 : * free(tmpdata) # <<<<<<<<<<<<<<
17216 : * return 0
17217 : *
17218 : */
17219 0 : free(__pyx_v_tmpdata);
17220 :
17221 : /* "View.MemoryView":1321
17222 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17223 : * free(tmpdata)
17224 : * return 0 # <<<<<<<<<<<<<<
17225 : *
17226 : * if order == 'F' == get_best_order(&dst, ndim):
17227 : */
17228 0 : __pyx_r = 0;
17229 0 : goto __pyx_L0;
17230 :
17231 : /* "View.MemoryView":1315
17232 : * direct_copy = slice_is_contig(dst, 'F', ndim)
17233 : *
17234 : * if direct_copy: # <<<<<<<<<<<<<<
17235 : *
17236 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17237 : */
17238 : }
17239 :
17240 : /* "View.MemoryView":1307
17241 : * src = tmp
17242 : *
17243 : * if not broadcasting: # <<<<<<<<<<<<<<
17244 : *
17245 : *
17246 : */
17247 : }
17248 :
17249 : /* "View.MemoryView":1323
17250 : * return 0
17251 : *
17252 : * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<<
17253 : *
17254 : *
17255 : */
17256 0 : __pyx_t_2 = (__pyx_v_order == 'F');
17257 0 : if (__pyx_t_2) {
17258 0 : __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim));
17259 : }
17260 0 : if (__pyx_t_2) {
17261 :
17262 : /* "View.MemoryView":1326
17263 : *
17264 : *
17265 : * transpose_memslice(&src) # <<<<<<<<<<<<<<
17266 : * transpose_memslice(&dst)
17267 : *
17268 : */
17269 0 : __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 1326, __pyx_L1_error)
17270 :
17271 : /* "View.MemoryView":1327
17272 : *
17273 : * transpose_memslice(&src)
17274 : * transpose_memslice(&dst) # <<<<<<<<<<<<<<
17275 : *
17276 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17277 : */
17278 0 : __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 1327, __pyx_L1_error)
17279 :
17280 : /* "View.MemoryView":1323
17281 : * return 0
17282 : *
17283 : * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<<
17284 : *
17285 : *
17286 : */
17287 : }
17288 :
17289 : /* "View.MemoryView":1329
17290 : * transpose_memslice(&dst)
17291 : *
17292 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False) # <<<<<<<<<<<<<<
17293 : * copy_strided_to_strided(&src, &dst, ndim, itemsize)
17294 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17295 : */
17296 0 : __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
17297 :
17298 : /* "View.MemoryView":1330
17299 : *
17300 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17301 : * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<<
17302 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17303 : *
17304 : */
17305 0 : copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize);
17306 :
17307 : /* "View.MemoryView":1331
17308 : * refcount_copying(&dst, dtype_is_object, ndim, inc=False)
17309 : * copy_strided_to_strided(&src, &dst, ndim, itemsize)
17310 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True) # <<<<<<<<<<<<<<
17311 : *
17312 : * free(tmpdata)
17313 : */
17314 0 : __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
17315 :
17316 : /* "View.MemoryView":1333
17317 : * refcount_copying(&dst, dtype_is_object, ndim, inc=True)
17318 : *
17319 : * free(tmpdata) # <<<<<<<<<<<<<<
17320 : * return 0
17321 : *
17322 : */
17323 0 : free(__pyx_v_tmpdata);
17324 :
17325 : /* "View.MemoryView":1334
17326 : *
17327 : * free(tmpdata)
17328 : * return 0 # <<<<<<<<<<<<<<
17329 : *
17330 : * @cname('__pyx_memoryview_broadcast_leading')
17331 : */
17332 0 : __pyx_r = 0;
17333 0 : goto __pyx_L0;
17334 :
17335 : /* "View.MemoryView":1265
17336 : *
17337 : * @cname('__pyx_memoryview_copy_contents')
17338 : * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<<
17339 : * __Pyx_memviewslice dst,
17340 : * int src_ndim, int dst_ndim,
17341 : */
17342 :
17343 : /* function exit code */
17344 0 : __pyx_L1_error:;
17345 : #ifdef WITH_THREAD
17346 0 : __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
17347 : #endif
17348 0 : __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename);
17349 0 : __pyx_r = -1;
17350 : #ifdef WITH_THREAD
17351 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
17352 : #endif
17353 0 : __pyx_L0:;
17354 0 : return __pyx_r;
17355 : }
17356 :
17357 : /* "View.MemoryView":1337
17358 : *
17359 : * @cname('__pyx_memoryview_broadcast_leading')
17360 : * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<<
17361 : * int ndim,
17362 : * int ndim_other) noexcept nogil:
17363 : */
17364 :
17365 0 : static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) {
17366 0 : int __pyx_v_i;
17367 0 : int __pyx_v_offset;
17368 0 : int __pyx_t_1;
17369 0 : int __pyx_t_2;
17370 0 : int __pyx_t_3;
17371 :
17372 : /* "View.MemoryView":1341
17373 : * int ndim_other) noexcept nogil:
17374 : * cdef int i
17375 : * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<<
17376 : *
17377 : * for i in range(ndim - 1, -1, -1):
17378 : */
17379 0 : __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim);
17380 :
17381 : /* "View.MemoryView":1343
17382 : * cdef int offset = ndim_other - ndim
17383 : *
17384 : * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<<
17385 : * mslice.shape[i + offset] = mslice.shape[i]
17386 : * mslice.strides[i + offset] = mslice.strides[i]
17387 : */
17388 0 : for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) {
17389 0 : __pyx_v_i = __pyx_t_1;
17390 :
17391 : /* "View.MemoryView":1344
17392 : *
17393 : * for i in range(ndim - 1, -1, -1):
17394 : * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<<
17395 : * mslice.strides[i + offset] = mslice.strides[i]
17396 : * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
17397 : */
17398 0 : (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]);
17399 :
17400 : /* "View.MemoryView":1345
17401 : * for i in range(ndim - 1, -1, -1):
17402 : * mslice.shape[i + offset] = mslice.shape[i]
17403 : * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<<
17404 : * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
17405 : *
17406 : */
17407 0 : (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]);
17408 :
17409 : /* "View.MemoryView":1346
17410 : * mslice.shape[i + offset] = mslice.shape[i]
17411 : * mslice.strides[i + offset] = mslice.strides[i]
17412 : * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<<
17413 : *
17414 : * for i in range(offset):
17415 : */
17416 0 : (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]);
17417 : }
17418 :
17419 : /* "View.MemoryView":1348
17420 : * mslice.suboffsets[i + offset] = mslice.suboffsets[i]
17421 : *
17422 : * for i in range(offset): # <<<<<<<<<<<<<<
17423 : * mslice.shape[i] = 1
17424 : * mslice.strides[i] = mslice.strides[0]
17425 : */
17426 0 : __pyx_t_1 = __pyx_v_offset;
17427 : __pyx_t_2 = __pyx_t_1;
17428 0 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
17429 0 : __pyx_v_i = __pyx_t_3;
17430 :
17431 : /* "View.MemoryView":1349
17432 : *
17433 : * for i in range(offset):
17434 : * mslice.shape[i] = 1 # <<<<<<<<<<<<<<
17435 : * mslice.strides[i] = mslice.strides[0]
17436 : * mslice.suboffsets[i] = -1
17437 : */
17438 0 : (__pyx_v_mslice->shape[__pyx_v_i]) = 1;
17439 :
17440 : /* "View.MemoryView":1350
17441 : * for i in range(offset):
17442 : * mslice.shape[i] = 1
17443 : * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<<
17444 : * mslice.suboffsets[i] = -1
17445 : *
17446 : */
17447 0 : (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]);
17448 :
17449 : /* "View.MemoryView":1351
17450 : * mslice.shape[i] = 1
17451 : * mslice.strides[i] = mslice.strides[0]
17452 : * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<<
17453 : *
17454 : *
17455 : */
17456 0 : (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L;
17457 : }
17458 :
17459 : /* "View.MemoryView":1337
17460 : *
17461 : * @cname('__pyx_memoryview_broadcast_leading')
17462 : * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<<
17463 : * int ndim,
17464 : * int ndim_other) noexcept nogil:
17465 : */
17466 :
17467 : /* function exit code */
17468 0 : }
17469 :
17470 : /* "View.MemoryView":1359
17471 : *
17472 : * @cname('__pyx_memoryview_refcount_copying')
17473 : * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil: # <<<<<<<<<<<<<<
17474 : *
17475 : * if dtype_is_object:
17476 : */
17477 :
17478 0 : static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) {
17479 :
17480 : /* "View.MemoryView":1361
17481 : * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
17482 : *
17483 : * if dtype_is_object: # <<<<<<<<<<<<<<
17484 : * refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
17485 : *
17486 : */
17487 0 : if (__pyx_v_dtype_is_object) {
17488 :
17489 : /* "View.MemoryView":1362
17490 : *
17491 : * if dtype_is_object:
17492 : * refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc) # <<<<<<<<<<<<<<
17493 : *
17494 : * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
17495 : */
17496 0 : __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc);
17497 :
17498 : /* "View.MemoryView":1361
17499 : * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil:
17500 : *
17501 : * if dtype_is_object: # <<<<<<<<<<<<<<
17502 : * refcount_objects_in_slice_with_gil(dst.data, dst.shape, dst.strides, ndim, inc)
17503 : *
17504 : */
17505 : }
17506 :
17507 : /* "View.MemoryView":1359
17508 : *
17509 : * @cname('__pyx_memoryview_refcount_copying')
17510 : * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, int ndim, bint inc) noexcept nogil: # <<<<<<<<<<<<<<
17511 : *
17512 : * if dtype_is_object:
17513 : */
17514 :
17515 : /* function exit code */
17516 0 : }
17517 :
17518 : /* "View.MemoryView":1365
17519 : *
17520 : * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
17521 : * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17522 : * Py_ssize_t *strides, int ndim,
17523 : * bint inc) noexcept with gil:
17524 : */
17525 :
17526 0 : static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
17527 : #ifdef WITH_THREAD
17528 0 : PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure();
17529 : #endif
17530 :
17531 : /* "View.MemoryView":1368
17532 : * Py_ssize_t *strides, int ndim,
17533 : * bint inc) noexcept with gil:
17534 : * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<<
17535 : *
17536 : * @cname('__pyx_memoryview_refcount_objects_in_slice')
17537 : */
17538 0 : __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc);
17539 :
17540 : /* "View.MemoryView":1365
17541 : *
17542 : * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil')
17543 : * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17544 : * Py_ssize_t *strides, int ndim,
17545 : * bint inc) noexcept with gil:
17546 : */
17547 :
17548 : /* function exit code */
17549 : #ifdef WITH_THREAD
17550 0 : __Pyx_PyGILState_Release(__pyx_gilstate_save);
17551 : #endif
17552 0 : }
17553 :
17554 : /* "View.MemoryView":1371
17555 : *
17556 : * @cname('__pyx_memoryview_refcount_objects_in_slice')
17557 : * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17558 : * Py_ssize_t *strides, int ndim, bint inc) noexcept:
17559 : * cdef Py_ssize_t i
17560 : */
17561 :
17562 0 : static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) {
17563 0 : CYTHON_UNUSED Py_ssize_t __pyx_v_i;
17564 0 : Py_ssize_t __pyx_v_stride;
17565 0 : Py_ssize_t __pyx_t_1;
17566 0 : Py_ssize_t __pyx_t_2;
17567 0 : Py_ssize_t __pyx_t_3;
17568 0 : int __pyx_t_4;
17569 :
17570 : /* "View.MemoryView":1374
17571 : * Py_ssize_t *strides, int ndim, bint inc) noexcept:
17572 : * cdef Py_ssize_t i
17573 : * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<<
17574 : *
17575 : * for i in range(shape[0]):
17576 : */
17577 0 : __pyx_v_stride = (__pyx_v_strides[0]);
17578 :
17579 : /* "View.MemoryView":1376
17580 : * cdef Py_ssize_t stride = strides[0]
17581 : *
17582 : * for i in range(shape[0]): # <<<<<<<<<<<<<<
17583 : * if ndim == 1:
17584 : * if inc:
17585 : */
17586 0 : __pyx_t_1 = (__pyx_v_shape[0]);
17587 0 : __pyx_t_2 = __pyx_t_1;
17588 0 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
17589 0 : __pyx_v_i = __pyx_t_3;
17590 :
17591 : /* "View.MemoryView":1377
17592 : *
17593 : * for i in range(shape[0]):
17594 : * if ndim == 1: # <<<<<<<<<<<<<<
17595 : * if inc:
17596 : * Py_INCREF((<PyObject **> data)[0])
17597 : */
17598 0 : __pyx_t_4 = (__pyx_v_ndim == 1);
17599 0 : if (__pyx_t_4) {
17600 :
17601 : /* "View.MemoryView":1378
17602 : * for i in range(shape[0]):
17603 : * if ndim == 1:
17604 : * if inc: # <<<<<<<<<<<<<<
17605 : * Py_INCREF((<PyObject **> data)[0])
17606 : * else:
17607 : */
17608 0 : if (__pyx_v_inc) {
17609 :
17610 : /* "View.MemoryView":1379
17611 : * if ndim == 1:
17612 : * if inc:
17613 : * Py_INCREF((<PyObject **> data)[0]) # <<<<<<<<<<<<<<
17614 : * else:
17615 : * Py_DECREF((<PyObject **> data)[0])
17616 : */
17617 0 : Py_INCREF((((PyObject **)__pyx_v_data)[0]));
17618 :
17619 : /* "View.MemoryView":1378
17620 : * for i in range(shape[0]):
17621 : * if ndim == 1:
17622 : * if inc: # <<<<<<<<<<<<<<
17623 : * Py_INCREF((<PyObject **> data)[0])
17624 : * else:
17625 : */
17626 0 : goto __pyx_L6;
17627 : }
17628 :
17629 : /* "View.MemoryView":1381
17630 : * Py_INCREF((<PyObject **> data)[0])
17631 : * else:
17632 : * Py_DECREF((<PyObject **> data)[0]) # <<<<<<<<<<<<<<
17633 : * else:
17634 : * refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
17635 : */
17636 : /*else*/ {
17637 0 : Py_DECREF((((PyObject **)__pyx_v_data)[0]));
17638 : }
17639 0 : __pyx_L6:;
17640 :
17641 : /* "View.MemoryView":1377
17642 : *
17643 : * for i in range(shape[0]):
17644 : * if ndim == 1: # <<<<<<<<<<<<<<
17645 : * if inc:
17646 : * Py_INCREF((<PyObject **> data)[0])
17647 : */
17648 0 : goto __pyx_L5;
17649 : }
17650 :
17651 : /* "View.MemoryView":1383
17652 : * Py_DECREF((<PyObject **> data)[0])
17653 : * else:
17654 : * refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc) # <<<<<<<<<<<<<<
17655 : *
17656 : * data += stride
17657 : */
17658 : /*else*/ {
17659 0 : __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc);
17660 : }
17661 0 : __pyx_L5:;
17662 :
17663 : /* "View.MemoryView":1385
17664 : * refcount_objects_in_slice(data, shape + 1, strides + 1, ndim - 1, inc)
17665 : *
17666 : * data += stride # <<<<<<<<<<<<<<
17667 : *
17668 : *
17669 : */
17670 0 : __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
17671 : }
17672 :
17673 : /* "View.MemoryView":1371
17674 : *
17675 : * @cname('__pyx_memoryview_refcount_objects_in_slice')
17676 : * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17677 : * Py_ssize_t *strides, int ndim, bint inc) noexcept:
17678 : * cdef Py_ssize_t i
17679 : */
17680 :
17681 : /* function exit code */
17682 0 : }
17683 :
17684 : /* "View.MemoryView":1391
17685 : *
17686 : * @cname('__pyx_memoryview_slice_assign_scalar')
17687 : * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<<
17688 : * size_t itemsize, void *item,
17689 : * bint dtype_is_object) noexcept nogil:
17690 : */
17691 :
17692 0 : static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) {
17693 :
17694 : /* "View.MemoryView":1394
17695 : * size_t itemsize, void *item,
17696 : * bint dtype_is_object) noexcept nogil:
17697 : * refcount_copying(dst, dtype_is_object, ndim, inc=False) # <<<<<<<<<<<<<<
17698 : * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
17699 : * refcount_copying(dst, dtype_is_object, ndim, inc=True)
17700 : */
17701 0 : __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0);
17702 :
17703 : /* "View.MemoryView":1395
17704 : * bint dtype_is_object) noexcept nogil:
17705 : * refcount_copying(dst, dtype_is_object, ndim, inc=False)
17706 : * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item) # <<<<<<<<<<<<<<
17707 : * refcount_copying(dst, dtype_is_object, ndim, inc=True)
17708 : *
17709 : */
17710 0 : __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item);
17711 :
17712 : /* "View.MemoryView":1396
17713 : * refcount_copying(dst, dtype_is_object, ndim, inc=False)
17714 : * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, itemsize, item)
17715 : * refcount_copying(dst, dtype_is_object, ndim, inc=True) # <<<<<<<<<<<<<<
17716 : *
17717 : *
17718 : */
17719 0 : __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1);
17720 :
17721 : /* "View.MemoryView":1391
17722 : *
17723 : * @cname('__pyx_memoryview_slice_assign_scalar')
17724 : * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<<
17725 : * size_t itemsize, void *item,
17726 : * bint dtype_is_object) noexcept nogil:
17727 : */
17728 :
17729 : /* function exit code */
17730 0 : }
17731 :
17732 : /* "View.MemoryView":1400
17733 : *
17734 : * @cname('__pyx_memoryview__slice_assign_scalar')
17735 : * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17736 : * Py_ssize_t *strides, int ndim,
17737 : * size_t itemsize, void *item) noexcept nogil:
17738 : */
17739 :
17740 0 : static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) {
17741 0 : CYTHON_UNUSED Py_ssize_t __pyx_v_i;
17742 0 : Py_ssize_t __pyx_v_stride;
17743 0 : Py_ssize_t __pyx_v_extent;
17744 0 : int __pyx_t_1;
17745 0 : Py_ssize_t __pyx_t_2;
17746 0 : Py_ssize_t __pyx_t_3;
17747 0 : Py_ssize_t __pyx_t_4;
17748 :
17749 : /* "View.MemoryView":1404
17750 : * size_t itemsize, void *item) noexcept nogil:
17751 : * cdef Py_ssize_t i
17752 : * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<<
17753 : * cdef Py_ssize_t extent = shape[0]
17754 : *
17755 : */
17756 0 : __pyx_v_stride = (__pyx_v_strides[0]);
17757 :
17758 : /* "View.MemoryView":1405
17759 : * cdef Py_ssize_t i
17760 : * cdef Py_ssize_t stride = strides[0]
17761 : * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<<
17762 : *
17763 : * if ndim == 1:
17764 : */
17765 0 : __pyx_v_extent = (__pyx_v_shape[0]);
17766 :
17767 : /* "View.MemoryView":1407
17768 : * cdef Py_ssize_t extent = shape[0]
17769 : *
17770 : * if ndim == 1: # <<<<<<<<<<<<<<
17771 : * for i in range(extent):
17772 : * memcpy(data, item, itemsize)
17773 : */
17774 0 : __pyx_t_1 = (__pyx_v_ndim == 1);
17775 0 : if (__pyx_t_1) {
17776 :
17777 : /* "View.MemoryView":1408
17778 : *
17779 : * if ndim == 1:
17780 : * for i in range(extent): # <<<<<<<<<<<<<<
17781 : * memcpy(data, item, itemsize)
17782 : * data += stride
17783 : */
17784 : __pyx_t_2 = __pyx_v_extent;
17785 : __pyx_t_3 = __pyx_t_2;
17786 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
17787 0 : __pyx_v_i = __pyx_t_4;
17788 :
17789 : /* "View.MemoryView":1409
17790 : * if ndim == 1:
17791 : * for i in range(extent):
17792 : * memcpy(data, item, itemsize) # <<<<<<<<<<<<<<
17793 : * data += stride
17794 : * else:
17795 : */
17796 0 : (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize));
17797 :
17798 : /* "View.MemoryView":1410
17799 : * for i in range(extent):
17800 : * memcpy(data, item, itemsize)
17801 : * data += stride # <<<<<<<<<<<<<<
17802 : * else:
17803 : * for i in range(extent):
17804 : */
17805 0 : __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
17806 : }
17807 :
17808 : /* "View.MemoryView":1407
17809 : * cdef Py_ssize_t extent = shape[0]
17810 : *
17811 : * if ndim == 1: # <<<<<<<<<<<<<<
17812 : * for i in range(extent):
17813 : * memcpy(data, item, itemsize)
17814 : */
17815 0 : goto __pyx_L3;
17816 : }
17817 :
17818 : /* "View.MemoryView":1412
17819 : * data += stride
17820 : * else:
17821 : * for i in range(extent): # <<<<<<<<<<<<<<
17822 : * _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
17823 : * data += stride
17824 : */
17825 : /*else*/ {
17826 : __pyx_t_2 = __pyx_v_extent;
17827 : __pyx_t_3 = __pyx_t_2;
17828 0 : for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
17829 0 : __pyx_v_i = __pyx_t_4;
17830 :
17831 : /* "View.MemoryView":1413
17832 : * else:
17833 : * for i in range(extent):
17834 : * _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item) # <<<<<<<<<<<<<<
17835 : * data += stride
17836 : *
17837 : */
17838 0 : __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item);
17839 :
17840 : /* "View.MemoryView":1414
17841 : * for i in range(extent):
17842 : * _slice_assign_scalar(data, shape + 1, strides + 1, ndim - 1, itemsize, item)
17843 : * data += stride # <<<<<<<<<<<<<<
17844 : *
17845 : *
17846 : */
17847 0 : __pyx_v_data = (__pyx_v_data + __pyx_v_stride);
17848 : }
17849 : }
17850 0 : __pyx_L3:;
17851 :
17852 : /* "View.MemoryView":1400
17853 : *
17854 : * @cname('__pyx_memoryview__slice_assign_scalar')
17855 : * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<<
17856 : * Py_ssize_t *strides, int ndim,
17857 : * size_t itemsize, void *item) noexcept nogil:
17858 : */
17859 :
17860 : /* function exit code */
17861 0 : }
17862 :
17863 : /* "(tree fragment)":1
17864 : * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
17865 : * cdef object __pyx_PickleError
17866 : * cdef object __pyx_result
17867 : */
17868 :
17869 : /* Python wrapper */
17870 : static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self,
17871 : #if CYTHON_METH_FASTCALL
17872 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17873 : #else
17874 : PyObject *__pyx_args, PyObject *__pyx_kwds
17875 : #endif
17876 : ); /*proto*/
17877 : static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
17878 0 : static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self,
17879 : #if CYTHON_METH_FASTCALL
17880 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
17881 : #else
17882 : PyObject *__pyx_args, PyObject *__pyx_kwds
17883 : #endif
17884 : ) {
17885 0 : PyObject *__pyx_v___pyx_type = 0;
17886 0 : long __pyx_v___pyx_checksum;
17887 0 : PyObject *__pyx_v___pyx_state = 0;
17888 : #if !CYTHON_METH_FASTCALL
17889 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
17890 : #endif
17891 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
17892 0 : PyObject* values[3] = {0,0,0};
17893 0 : int __pyx_lineno = 0;
17894 0 : const char *__pyx_filename = NULL;
17895 0 : int __pyx_clineno = 0;
17896 0 : PyObject *__pyx_r = 0;
17897 : __Pyx_RefNannyDeclarations
17898 0 : __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0);
17899 : #if !CYTHON_METH_FASTCALL
17900 : #if CYTHON_ASSUME_SAFE_MACROS
17901 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
17902 : #else
17903 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
17904 : #endif
17905 : #endif
17906 0 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
17907 : {
17908 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0};
17909 0 : if (__pyx_kwds) {
17910 0 : Py_ssize_t kw_args;
17911 0 : switch (__pyx_nargs) {
17912 0 : case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
17913 0 : CYTHON_FALLTHROUGH;
17914 0 : case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
17915 0 : CYTHON_FALLTHROUGH;
17916 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
17917 0 : CYTHON_FALLTHROUGH;
17918 0 : case 0: break;
17919 0 : default: goto __pyx_L5_argtuple_error;
17920 : }
17921 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
17922 0 : switch (__pyx_nargs) {
17923 0 : case 0:
17924 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_type)) != 0)) {
17925 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
17926 0 : kw_args--;
17927 : }
17928 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
17929 0 : else goto __pyx_L5_argtuple_error;
17930 0 : CYTHON_FALLTHROUGH;
17931 : case 1:
17932 0 : if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_checksum)) != 0)) {
17933 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
17934 0 : kw_args--;
17935 : }
17936 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
17937 : else {
17938 0 : __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(1, 1, __pyx_L3_error)
17939 : }
17940 0 : CYTHON_FALLTHROUGH;
17941 : case 2:
17942 0 : if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_pyx_state)) != 0)) {
17943 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
17944 0 : kw_args--;
17945 : }
17946 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
17947 : else {
17948 0 : __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(1, 1, __pyx_L3_error)
17949 : }
17950 : }
17951 0 : if (unlikely(kw_args > 0)) {
17952 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
17953 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(1, 1, __pyx_L3_error)
17954 : }
17955 0 : } else if (unlikely(__pyx_nargs != 3)) {
17956 0 : goto __pyx_L5_argtuple_error;
17957 : } else {
17958 0 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
17959 0 : values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
17960 0 : values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
17961 : }
17962 0 : __pyx_v___pyx_type = values[0];
17963 0 : __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(1, 1, __pyx_L3_error)
17964 0 : __pyx_v___pyx_state = values[2];
17965 : }
17966 0 : goto __pyx_L6_skip;
17967 0 : __pyx_L5_argtuple_error:;
17968 0 : __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, __pyx_nargs); __PYX_ERR(1, 1, __pyx_L3_error)
17969 0 : __pyx_L6_skip:;
17970 0 : goto __pyx_L4_argument_unpacking_done;
17971 0 : __pyx_L3_error:;
17972 : {
17973 0 : Py_ssize_t __pyx_temp;
17974 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17975 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
17976 : }
17977 : }
17978 0 : __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
17979 0 : __Pyx_RefNannyFinishContext();
17980 0 : return NULL;
17981 0 : __pyx_L4_argument_unpacking_done:;
17982 0 : __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state);
17983 :
17984 : /* function exit code */
17985 : {
17986 0 : Py_ssize_t __pyx_temp;
17987 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
17988 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
17989 : }
17990 : }
17991 : __Pyx_RefNannyFinishContext();
17992 : return __pyx_r;
17993 : }
17994 :
17995 0 : static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) {
17996 0 : PyObject *__pyx_v___pyx_PickleError = 0;
17997 0 : PyObject *__pyx_v___pyx_result = 0;
17998 0 : PyObject *__pyx_r = NULL;
17999 : __Pyx_RefNannyDeclarations
18000 0 : PyObject *__pyx_t_1 = NULL;
18001 0 : int __pyx_t_2;
18002 0 : PyObject *__pyx_t_3 = NULL;
18003 0 : PyObject *__pyx_t_4 = NULL;
18004 0 : unsigned int __pyx_t_5;
18005 0 : int __pyx_lineno = 0;
18006 0 : const char *__pyx_filename = NULL;
18007 0 : int __pyx_clineno = 0;
18008 0 : __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 1);
18009 :
18010 : /* "(tree fragment)":4
18011 : * cdef object __pyx_PickleError
18012 : * cdef object __pyx_result
18013 : * if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931): # <<<<<<<<<<<<<<
18014 : * from pickle import PickleError as __pyx_PickleError
18015 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18016 : */
18017 0 : __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 4, __pyx_L1_error)
18018 0 : __Pyx_GOTREF(__pyx_t_1);
18019 0 : __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__8, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 4, __pyx_L1_error)
18020 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18021 0 : if (__pyx_t_2) {
18022 :
18023 : /* "(tree fragment)":5
18024 : * cdef object __pyx_result
18025 : * if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
18026 : * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<<
18027 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18028 : * __pyx_result = Enum.__new__(__pyx_type)
18029 : */
18030 0 : __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
18031 0 : __Pyx_GOTREF(__pyx_t_1);
18032 0 : __Pyx_INCREF(__pyx_n_s_PickleError);
18033 0 : __Pyx_GIVEREF(__pyx_n_s_PickleError);
18034 0 : if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError)) __PYX_ERR(1, 5, __pyx_L1_error);
18035 0 : __pyx_t_3 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 5, __pyx_L1_error)
18036 0 : __Pyx_GOTREF(__pyx_t_3);
18037 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18038 0 : __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 5, __pyx_L1_error)
18039 0 : __Pyx_GOTREF(__pyx_t_1);
18040 0 : __Pyx_INCREF(__pyx_t_1);
18041 0 : __pyx_v___pyx_PickleError = __pyx_t_1;
18042 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18043 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18044 :
18045 : /* "(tree fragment)":6
18046 : * if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931):
18047 : * from pickle import PickleError as __pyx_PickleError
18048 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum # <<<<<<<<<<<<<<
18049 : * __pyx_result = Enum.__new__(__pyx_type)
18050 : * if __pyx_state is not None:
18051 : */
18052 0 : __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 6, __pyx_L1_error)
18053 0 : __Pyx_GOTREF(__pyx_t_3);
18054 0 : __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 6, __pyx_L1_error)
18055 0 : __Pyx_GOTREF(__pyx_t_1);
18056 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18057 0 : __Pyx_Raise(__pyx_v___pyx_PickleError, __pyx_t_1, 0, 0);
18058 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18059 0 : __PYX_ERR(1, 6, __pyx_L1_error)
18060 :
18061 : /* "(tree fragment)":4
18062 : * cdef object __pyx_PickleError
18063 : * cdef object __pyx_result
18064 : * if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931): # <<<<<<<<<<<<<<
18065 : * from pickle import PickleError as __pyx_PickleError
18066 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18067 : */
18068 : }
18069 :
18070 : /* "(tree fragment)":7
18071 : * from pickle import PickleError as __pyx_PickleError
18072 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18073 : * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<<
18074 : * if __pyx_state is not None:
18075 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18076 : */
18077 0 : __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 7, __pyx_L1_error)
18078 0 : __Pyx_GOTREF(__pyx_t_3);
18079 0 : __pyx_t_4 = NULL;
18080 0 : __pyx_t_5 = 0;
18081 : #if CYTHON_UNPACK_METHODS
18082 0 : if (likely(PyMethod_Check(__pyx_t_3))) {
18083 0 : __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
18084 0 : if (likely(__pyx_t_4)) {
18085 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
18086 0 : __Pyx_INCREF(__pyx_t_4);
18087 0 : __Pyx_INCREF(function);
18088 0 : __Pyx_DECREF_SET(__pyx_t_3, function);
18089 : __pyx_t_5 = 1;
18090 : }
18091 : }
18092 : #endif
18093 : {
18094 0 : PyObject *__pyx_callargs[2] = {__pyx_t_4, __pyx_v___pyx_type};
18095 0 : __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_3, __pyx_callargs+1-__pyx_t_5, 1+__pyx_t_5);
18096 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
18097 0 : if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 7, __pyx_L1_error)
18098 0 : __Pyx_GOTREF(__pyx_t_1);
18099 0 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
18100 : }
18101 0 : __pyx_v___pyx_result = __pyx_t_1;
18102 0 : __pyx_t_1 = 0;
18103 :
18104 : /* "(tree fragment)":8
18105 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18106 : * __pyx_result = Enum.__new__(__pyx_type)
18107 : * if __pyx_state is not None: # <<<<<<<<<<<<<<
18108 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18109 : * return __pyx_result
18110 : */
18111 0 : __pyx_t_2 = (__pyx_v___pyx_state != Py_None);
18112 0 : if (__pyx_t_2) {
18113 :
18114 : /* "(tree fragment)":9
18115 : * __pyx_result = Enum.__new__(__pyx_type)
18116 : * if __pyx_state is not None:
18117 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state) # <<<<<<<<<<<<<<
18118 : * return __pyx_result
18119 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
18120 : */
18121 0 : if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None) || __Pyx_RaiseUnexpectedTypeError("tuple", __pyx_v___pyx_state))) __PYX_ERR(1, 9, __pyx_L1_error)
18122 0 : __pyx_t_1 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error)
18123 0 : __Pyx_GOTREF(__pyx_t_1);
18124 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18125 :
18126 : /* "(tree fragment)":8
18127 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
18128 : * __pyx_result = Enum.__new__(__pyx_type)
18129 : * if __pyx_state is not None: # <<<<<<<<<<<<<<
18130 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18131 : * return __pyx_result
18132 : */
18133 : }
18134 :
18135 : /* "(tree fragment)":10
18136 : * if __pyx_state is not None:
18137 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18138 : * return __pyx_result # <<<<<<<<<<<<<<
18139 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
18140 : * __pyx_result.name = __pyx_state[0]
18141 : */
18142 0 : __Pyx_XDECREF(__pyx_r);
18143 0 : __Pyx_INCREF(__pyx_v___pyx_result);
18144 0 : __pyx_r = __pyx_v___pyx_result;
18145 0 : goto __pyx_L0;
18146 :
18147 : /* "(tree fragment)":1
18148 : * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
18149 : * cdef object __pyx_PickleError
18150 : * cdef object __pyx_result
18151 : */
18152 :
18153 : /* function exit code */
18154 0 : __pyx_L1_error:;
18155 0 : __Pyx_XDECREF(__pyx_t_1);
18156 0 : __Pyx_XDECREF(__pyx_t_3);
18157 0 : __Pyx_XDECREF(__pyx_t_4);
18158 0 : __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename);
18159 0 : __pyx_r = NULL;
18160 0 : __pyx_L0:;
18161 0 : __Pyx_XDECREF(__pyx_v___pyx_PickleError);
18162 0 : __Pyx_XDECREF(__pyx_v___pyx_result);
18163 0 : __Pyx_XGIVEREF(__pyx_r);
18164 0 : __Pyx_RefNannyFinishContext();
18165 0 : return __pyx_r;
18166 : }
18167 :
18168 : /* "(tree fragment)":11
18169 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18170 : * return __pyx_result
18171 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
18172 : * __pyx_result.name = __pyx_state[0]
18173 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
18174 : */
18175 :
18176 0 : static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) {
18177 0 : PyObject *__pyx_r = NULL;
18178 : __Pyx_RefNannyDeclarations
18179 0 : PyObject *__pyx_t_1 = NULL;
18180 0 : int __pyx_t_2;
18181 0 : Py_ssize_t __pyx_t_3;
18182 0 : int __pyx_t_4;
18183 0 : PyObject *__pyx_t_5 = NULL;
18184 0 : PyObject *__pyx_t_6 = NULL;
18185 0 : PyObject *__pyx_t_7 = NULL;
18186 0 : unsigned int __pyx_t_8;
18187 0 : int __pyx_lineno = 0;
18188 0 : const char *__pyx_filename = NULL;
18189 0 : int __pyx_clineno = 0;
18190 0 : __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 1);
18191 :
18192 : /* "(tree fragment)":12
18193 : * return __pyx_result
18194 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
18195 : * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<<
18196 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
18197 : * __pyx_result.__dict__.update(__pyx_state[1])
18198 : */
18199 0 : if (unlikely(__pyx_v___pyx_state == Py_None)) {
18200 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
18201 0 : __PYX_ERR(1, 12, __pyx_L1_error)
18202 : }
18203 0 : __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error)
18204 0 : __Pyx_GOTREF(__pyx_t_1);
18205 0 : __Pyx_GIVEREF(__pyx_t_1);
18206 0 : __Pyx_GOTREF(__pyx_v___pyx_result->name);
18207 0 : __Pyx_DECREF(__pyx_v___pyx_result->name);
18208 0 : __pyx_v___pyx_result->name = __pyx_t_1;
18209 0 : __pyx_t_1 = 0;
18210 :
18211 : /* "(tree fragment)":13
18212 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
18213 : * __pyx_result.name = __pyx_state[0]
18214 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
18215 : * __pyx_result.__dict__.update(__pyx_state[1])
18216 : */
18217 0 : if (unlikely(__pyx_v___pyx_state == Py_None)) {
18218 : PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
18219 : __PYX_ERR(1, 13, __pyx_L1_error)
18220 : }
18221 0 : __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
18222 0 : __pyx_t_4 = (__pyx_t_3 > 1);
18223 0 : if (__pyx_t_4) {
18224 0 : } else {
18225 0 : __pyx_t_2 = __pyx_t_4;
18226 0 : goto __pyx_L4_bool_binop_done;
18227 : }
18228 0 : __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 13, __pyx_L1_error)
18229 : __pyx_t_2 = __pyx_t_4;
18230 0 : __pyx_L4_bool_binop_done:;
18231 0 : if (__pyx_t_2) {
18232 :
18233 : /* "(tree fragment)":14
18234 : * __pyx_result.name = __pyx_state[0]
18235 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
18236 : * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<<
18237 : */
18238 0 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error)
18239 0 : __Pyx_GOTREF(__pyx_t_5);
18240 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_update); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 14, __pyx_L1_error)
18241 0 : __Pyx_GOTREF(__pyx_t_6);
18242 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
18243 0 : if (unlikely(__pyx_v___pyx_state == Py_None)) {
18244 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
18245 : __PYX_ERR(1, 14, __pyx_L1_error)
18246 : }
18247 0 : __pyx_t_5 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 14, __pyx_L1_error)
18248 0 : __Pyx_GOTREF(__pyx_t_5);
18249 0 : __pyx_t_7 = NULL;
18250 0 : __pyx_t_8 = 0;
18251 : #if CYTHON_UNPACK_METHODS
18252 0 : if (likely(PyMethod_Check(__pyx_t_6))) {
18253 0 : __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
18254 0 : if (likely(__pyx_t_7)) {
18255 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
18256 0 : __Pyx_INCREF(__pyx_t_7);
18257 0 : __Pyx_INCREF(function);
18258 0 : __Pyx_DECREF_SET(__pyx_t_6, function);
18259 : __pyx_t_8 = 1;
18260 : }
18261 : }
18262 : #endif
18263 : {
18264 0 : PyObject *__pyx_callargs[2] = {__pyx_t_7, __pyx_t_5};
18265 0 : __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_6, __pyx_callargs+1-__pyx_t_8, 1+__pyx_t_8);
18266 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
18267 0 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
18268 0 : if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 14, __pyx_L1_error)
18269 0 : __Pyx_GOTREF(__pyx_t_1);
18270 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
18271 : }
18272 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
18273 :
18274 : /* "(tree fragment)":13
18275 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state):
18276 : * __pyx_result.name = __pyx_state[0]
18277 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<<
18278 : * __pyx_result.__dict__.update(__pyx_state[1])
18279 : */
18280 : }
18281 :
18282 : /* "(tree fragment)":11
18283 : * __pyx_unpickle_Enum__set_state(<Enum> __pyx_result, __pyx_state)
18284 : * return __pyx_result
18285 : * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<<
18286 : * __pyx_result.name = __pyx_state[0]
18287 : * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'):
18288 : */
18289 :
18290 : /* function exit code */
18291 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
18292 0 : goto __pyx_L0;
18293 0 : __pyx_L1_error:;
18294 0 : __Pyx_XDECREF(__pyx_t_1);
18295 0 : __Pyx_XDECREF(__pyx_t_5);
18296 0 : __Pyx_XDECREF(__pyx_t_6);
18297 0 : __Pyx_XDECREF(__pyx_t_7);
18298 0 : __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename);
18299 0 : __pyx_r = 0;
18300 0 : __pyx_L0:;
18301 0 : __Pyx_XGIVEREF(__pyx_r);
18302 0 : __Pyx_RefNannyFinishContext();
18303 0 : return __pyx_r;
18304 : }
18305 :
18306 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286
18307 : *
18308 : * @property
18309 : * cdef inline npy_intp itemsize(self) noexcept nogil: # <<<<<<<<<<<<<<
18310 : * return PyDataType_ELSIZE(self)
18311 : *
18312 : */
18313 :
18314 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) {
18315 : npy_intp __pyx_r;
18316 :
18317 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":287
18318 : * @property
18319 : * cdef inline npy_intp itemsize(self) noexcept nogil:
18320 : * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<<
18321 : *
18322 : * @property
18323 : */
18324 : __pyx_r = PyDataType_ELSIZE(__pyx_v_self);
18325 : goto __pyx_L0;
18326 :
18327 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286
18328 : *
18329 : * @property
18330 : * cdef inline npy_intp itemsize(self) noexcept nogil: # <<<<<<<<<<<<<<
18331 : * return PyDataType_ELSIZE(self)
18332 : *
18333 : */
18334 :
18335 : /* function exit code */
18336 : __pyx_L0:;
18337 : return __pyx_r;
18338 : }
18339 :
18340 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290
18341 : *
18342 : * @property
18343 : * cdef inline npy_intp alignment(self) noexcept nogil: # <<<<<<<<<<<<<<
18344 : * return PyDataType_ALIGNMENT(self)
18345 : *
18346 : */
18347 :
18348 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) {
18349 : npy_intp __pyx_r;
18350 :
18351 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":291
18352 : * @property
18353 : * cdef inline npy_intp alignment(self) noexcept nogil:
18354 : * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<<
18355 : *
18356 : * # Use fields/names with care as they may be NULL. You must check
18357 : */
18358 : __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self);
18359 : goto __pyx_L0;
18360 :
18361 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290
18362 : *
18363 : * @property
18364 : * cdef inline npy_intp alignment(self) noexcept nogil: # <<<<<<<<<<<<<<
18365 : * return PyDataType_ALIGNMENT(self)
18366 : *
18367 : */
18368 :
18369 : /* function exit code */
18370 : __pyx_L0:;
18371 : return __pyx_r;
18372 : }
18373 :
18374 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296
18375 : * # for this using PyDataType_HASFIELDS.
18376 : * @property
18377 : * cdef inline object fields(self): # <<<<<<<<<<<<<<
18378 : * return <object>PyDataType_FIELDS(self)
18379 : *
18380 : */
18381 :
18382 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self) {
18383 : PyObject *__pyx_r = NULL;
18384 : __Pyx_RefNannyDeclarations
18385 : PyObject *__pyx_t_1;
18386 : __Pyx_RefNannySetupContext("fields", 1);
18387 :
18388 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":297
18389 : * @property
18390 : * cdef inline object fields(self):
18391 : * return <object>PyDataType_FIELDS(self) # <<<<<<<<<<<<<<
18392 : *
18393 : * @property
18394 : */
18395 : __Pyx_XDECREF(__pyx_r);
18396 : __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self);
18397 : __Pyx_INCREF(((PyObject *)__pyx_t_1));
18398 : __pyx_r = ((PyObject *)__pyx_t_1);
18399 : goto __pyx_L0;
18400 :
18401 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296
18402 : * # for this using PyDataType_HASFIELDS.
18403 : * @property
18404 : * cdef inline object fields(self): # <<<<<<<<<<<<<<
18405 : * return <object>PyDataType_FIELDS(self)
18406 : *
18407 : */
18408 :
18409 : /* function exit code */
18410 : __pyx_L0:;
18411 : __Pyx_XGIVEREF(__pyx_r);
18412 : __Pyx_RefNannyFinishContext();
18413 : return __pyx_r;
18414 : }
18415 :
18416 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300
18417 : *
18418 : * @property
18419 : * cdef inline tuple names(self): # <<<<<<<<<<<<<<
18420 : * return <tuple>PyDataType_NAMES(self)
18421 : *
18422 : */
18423 :
18424 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self) {
18425 : PyObject *__pyx_r = NULL;
18426 : __Pyx_RefNannyDeclarations
18427 : PyObject *__pyx_t_1;
18428 : __Pyx_RefNannySetupContext("names", 1);
18429 :
18430 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":301
18431 : * @property
18432 : * cdef inline tuple names(self):
18433 : * return <tuple>PyDataType_NAMES(self) # <<<<<<<<<<<<<<
18434 : *
18435 : * # Use PyDataType_HASSUBARRAY to test whether this field is
18436 : */
18437 : __Pyx_XDECREF(__pyx_r);
18438 : __pyx_t_1 = PyDataType_NAMES(__pyx_v_self);
18439 : __Pyx_INCREF(((PyObject*)__pyx_t_1));
18440 : __pyx_r = ((PyObject*)__pyx_t_1);
18441 : goto __pyx_L0;
18442 :
18443 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300
18444 : *
18445 : * @property
18446 : * cdef inline tuple names(self): # <<<<<<<<<<<<<<
18447 : * return <tuple>PyDataType_NAMES(self)
18448 : *
18449 : */
18450 :
18451 : /* function exit code */
18452 : __pyx_L0:;
18453 : __Pyx_XGIVEREF(__pyx_r);
18454 : __Pyx_RefNannyFinishContext();
18455 : return __pyx_r;
18456 : }
18457 :
18458 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307
18459 : * # this field via the inline helper method PyDataType_SHAPE.
18460 : * @property
18461 : * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil: # <<<<<<<<<<<<<<
18462 : * return PyDataType_SUBARRAY(self)
18463 : *
18464 : */
18465 :
18466 : static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) {
18467 : PyArray_ArrayDescr *__pyx_r;
18468 :
18469 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":308
18470 : * @property
18471 : * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil:
18472 : * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<<
18473 : *
18474 : * @property
18475 : */
18476 : __pyx_r = PyDataType_SUBARRAY(__pyx_v_self);
18477 : goto __pyx_L0;
18478 :
18479 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307
18480 : * # this field via the inline helper method PyDataType_SHAPE.
18481 : * @property
18482 : * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil: # <<<<<<<<<<<<<<
18483 : * return PyDataType_SUBARRAY(self)
18484 : *
18485 : */
18486 :
18487 : /* function exit code */
18488 : __pyx_L0:;
18489 : return __pyx_r;
18490 : }
18491 :
18492 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311
18493 : *
18494 : * @property
18495 : * cdef inline npy_uint64 flags(self) noexcept nogil: # <<<<<<<<<<<<<<
18496 : * """The data types flags."""
18497 : * return PyDataType_FLAGS(self)
18498 : */
18499 :
18500 : static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) {
18501 : npy_uint64 __pyx_r;
18502 :
18503 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":313
18504 : * cdef inline npy_uint64 flags(self) noexcept nogil:
18505 : * """The data types flags."""
18506 : * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<<
18507 : *
18508 : *
18509 : */
18510 : __pyx_r = PyDataType_FLAGS(__pyx_v_self);
18511 : goto __pyx_L0;
18512 :
18513 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311
18514 : *
18515 : * @property
18516 : * cdef inline npy_uint64 flags(self) noexcept nogil: # <<<<<<<<<<<<<<
18517 : * """The data types flags."""
18518 : * return PyDataType_FLAGS(self)
18519 : */
18520 :
18521 : /* function exit code */
18522 : __pyx_L0:;
18523 : return __pyx_r;
18524 : }
18525 :
18526 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323
18527 : *
18528 : * @property
18529 : * cdef inline int numiter(self) noexcept nogil: # <<<<<<<<<<<<<<
18530 : * """The number of arrays that need to be broadcast to the same shape."""
18531 : * return PyArray_MultiIter_NUMITER(self)
18532 : */
18533 :
18534 : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) {
18535 : int __pyx_r;
18536 :
18537 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":325
18538 : * cdef inline int numiter(self) noexcept nogil:
18539 : * """The number of arrays that need to be broadcast to the same shape."""
18540 : * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<<
18541 : *
18542 : * @property
18543 : */
18544 : __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self);
18545 : goto __pyx_L0;
18546 :
18547 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323
18548 : *
18549 : * @property
18550 : * cdef inline int numiter(self) noexcept nogil: # <<<<<<<<<<<<<<
18551 : * """The number of arrays that need to be broadcast to the same shape."""
18552 : * return PyArray_MultiIter_NUMITER(self)
18553 : */
18554 :
18555 : /* function exit code */
18556 : __pyx_L0:;
18557 : return __pyx_r;
18558 : }
18559 :
18560 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328
18561 : *
18562 : * @property
18563 : * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<<
18564 : * """The total broadcasted size."""
18565 : * return PyArray_MultiIter_SIZE(self)
18566 : */
18567 :
18568 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) {
18569 : npy_intp __pyx_r;
18570 :
18571 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":330
18572 : * cdef inline npy_intp size(self) noexcept nogil:
18573 : * """The total broadcasted size."""
18574 : * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<<
18575 : *
18576 : * @property
18577 : */
18578 : __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self);
18579 : goto __pyx_L0;
18580 :
18581 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328
18582 : *
18583 : * @property
18584 : * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<<
18585 : * """The total broadcasted size."""
18586 : * return PyArray_MultiIter_SIZE(self)
18587 : */
18588 :
18589 : /* function exit code */
18590 : __pyx_L0:;
18591 : return __pyx_r;
18592 : }
18593 :
18594 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333
18595 : *
18596 : * @property
18597 : * cdef inline npy_intp index(self) noexcept nogil: # <<<<<<<<<<<<<<
18598 : * """The current (1-d) index into the broadcasted result."""
18599 : * return PyArray_MultiIter_INDEX(self)
18600 : */
18601 :
18602 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) {
18603 : npy_intp __pyx_r;
18604 :
18605 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":335
18606 : * cdef inline npy_intp index(self) noexcept nogil:
18607 : * """The current (1-d) index into the broadcasted result."""
18608 : * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<<
18609 : *
18610 : * @property
18611 : */
18612 : __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self);
18613 : goto __pyx_L0;
18614 :
18615 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333
18616 : *
18617 : * @property
18618 : * cdef inline npy_intp index(self) noexcept nogil: # <<<<<<<<<<<<<<
18619 : * """The current (1-d) index into the broadcasted result."""
18620 : * return PyArray_MultiIter_INDEX(self)
18621 : */
18622 :
18623 : /* function exit code */
18624 : __pyx_L0:;
18625 : return __pyx_r;
18626 : }
18627 :
18628 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338
18629 : *
18630 : * @property
18631 : * cdef inline int nd(self) noexcept nogil: # <<<<<<<<<<<<<<
18632 : * """The number of dimensions in the broadcasted result."""
18633 : * return PyArray_MultiIter_NDIM(self)
18634 : */
18635 :
18636 : static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) {
18637 : int __pyx_r;
18638 :
18639 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":340
18640 : * cdef inline int nd(self) noexcept nogil:
18641 : * """The number of dimensions in the broadcasted result."""
18642 : * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<<
18643 : *
18644 : * @property
18645 : */
18646 : __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self);
18647 : goto __pyx_L0;
18648 :
18649 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338
18650 : *
18651 : * @property
18652 : * cdef inline int nd(self) noexcept nogil: # <<<<<<<<<<<<<<
18653 : * """The number of dimensions in the broadcasted result."""
18654 : * return PyArray_MultiIter_NDIM(self)
18655 : */
18656 :
18657 : /* function exit code */
18658 : __pyx_L0:;
18659 : return __pyx_r;
18660 : }
18661 :
18662 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343
18663 : *
18664 : * @property
18665 : * cdef inline npy_intp* dimensions(self) noexcept nogil: # <<<<<<<<<<<<<<
18666 : * """The shape of the broadcasted result."""
18667 : * return PyArray_MultiIter_DIMS(self)
18668 : */
18669 :
18670 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) {
18671 : npy_intp *__pyx_r;
18672 :
18673 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":345
18674 : * cdef inline npy_intp* dimensions(self) noexcept nogil:
18675 : * """The shape of the broadcasted result."""
18676 : * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<<
18677 : *
18678 : * @property
18679 : */
18680 : __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self);
18681 : goto __pyx_L0;
18682 :
18683 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343
18684 : *
18685 : * @property
18686 : * cdef inline npy_intp* dimensions(self) noexcept nogil: # <<<<<<<<<<<<<<
18687 : * """The shape of the broadcasted result."""
18688 : * return PyArray_MultiIter_DIMS(self)
18689 : */
18690 :
18691 : /* function exit code */
18692 : __pyx_L0:;
18693 : return __pyx_r;
18694 : }
18695 :
18696 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348
18697 : *
18698 : * @property
18699 : * cdef inline void** iters(self) noexcept nogil: # <<<<<<<<<<<<<<
18700 : * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
18701 : * On return, the iterators are adjusted for broadcasting."""
18702 : */
18703 :
18704 : static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) {
18705 : void **__pyx_r;
18706 :
18707 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":351
18708 : * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
18709 : * On return, the iterators are adjusted for broadcasting."""
18710 : * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<<
18711 : *
18712 : *
18713 : */
18714 : __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self);
18715 : goto __pyx_L0;
18716 :
18717 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348
18718 : *
18719 : * @property
18720 : * cdef inline void** iters(self) noexcept nogil: # <<<<<<<<<<<<<<
18721 : * """An array of iterator objects that holds the iterators for the arrays to be broadcast together.
18722 : * On return, the iterators are adjusted for broadcasting."""
18723 : */
18724 :
18725 : /* function exit code */
18726 : __pyx_L0:;
18727 : return __pyx_r;
18728 : }
18729 :
18730 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366
18731 : *
18732 : * @property
18733 : * cdef inline PyObject* base(self) noexcept nogil: # <<<<<<<<<<<<<<
18734 : * """Returns a borrowed reference to the object owning the data/memory.
18735 : * """
18736 : */
18737 :
18738 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) {
18739 : PyObject *__pyx_r;
18740 :
18741 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":369
18742 : * """Returns a borrowed reference to the object owning the data/memory.
18743 : * """
18744 : * return PyArray_BASE(self) # <<<<<<<<<<<<<<
18745 : *
18746 : * @property
18747 : */
18748 : __pyx_r = PyArray_BASE(__pyx_v_self);
18749 : goto __pyx_L0;
18750 :
18751 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366
18752 : *
18753 : * @property
18754 : * cdef inline PyObject* base(self) noexcept nogil: # <<<<<<<<<<<<<<
18755 : * """Returns a borrowed reference to the object owning the data/memory.
18756 : * """
18757 : */
18758 :
18759 : /* function exit code */
18760 : __pyx_L0:;
18761 : return __pyx_r;
18762 : }
18763 :
18764 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372
18765 : *
18766 : * @property
18767 : * cdef inline dtype descr(self): # <<<<<<<<<<<<<<
18768 : * """Returns an owned reference to the dtype of the array.
18769 : * """
18770 : */
18771 :
18772 : static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) {
18773 : PyArray_Descr *__pyx_r = NULL;
18774 : __Pyx_RefNannyDeclarations
18775 : PyArray_Descr *__pyx_t_1;
18776 : __Pyx_RefNannySetupContext("descr", 1);
18777 :
18778 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":375
18779 : * """Returns an owned reference to the dtype of the array.
18780 : * """
18781 : * return <dtype>PyArray_DESCR(self) # <<<<<<<<<<<<<<
18782 : *
18783 : * @property
18784 : */
18785 : __Pyx_XDECREF((PyObject *)__pyx_r);
18786 : __pyx_t_1 = PyArray_DESCR(__pyx_v_self);
18787 : __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1));
18788 : __pyx_r = ((PyArray_Descr *)__pyx_t_1);
18789 : goto __pyx_L0;
18790 :
18791 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372
18792 : *
18793 : * @property
18794 : * cdef inline dtype descr(self): # <<<<<<<<<<<<<<
18795 : * """Returns an owned reference to the dtype of the array.
18796 : * """
18797 : */
18798 :
18799 : /* function exit code */
18800 : __pyx_L0:;
18801 : __Pyx_XGIVEREF((PyObject *)__pyx_r);
18802 : __Pyx_RefNannyFinishContext();
18803 : return __pyx_r;
18804 : }
18805 :
18806 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378
18807 : *
18808 : * @property
18809 : * cdef inline int ndim(self) noexcept nogil: # <<<<<<<<<<<<<<
18810 : * """Returns the number of dimensions in the array.
18811 : * """
18812 : */
18813 :
18814 : static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) {
18815 : int __pyx_r;
18816 :
18817 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":381
18818 : * """Returns the number of dimensions in the array.
18819 : * """
18820 : * return PyArray_NDIM(self) # <<<<<<<<<<<<<<
18821 : *
18822 : * @property
18823 : */
18824 : __pyx_r = PyArray_NDIM(__pyx_v_self);
18825 : goto __pyx_L0;
18826 :
18827 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378
18828 : *
18829 : * @property
18830 : * cdef inline int ndim(self) noexcept nogil: # <<<<<<<<<<<<<<
18831 : * """Returns the number of dimensions in the array.
18832 : * """
18833 : */
18834 :
18835 : /* function exit code */
18836 : __pyx_L0:;
18837 : return __pyx_r;
18838 : }
18839 :
18840 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384
18841 : *
18842 : * @property
18843 : * cdef inline npy_intp *shape(self) noexcept nogil: # <<<<<<<<<<<<<<
18844 : * """Returns a pointer to the dimensions/shape of the array.
18845 : * The number of elements matches the number of dimensions of the array (ndim).
18846 : */
18847 :
18848 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) {
18849 : npy_intp *__pyx_r;
18850 :
18851 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":389
18852 : * Can return NULL for 0-dimensional arrays.
18853 : * """
18854 : * return PyArray_DIMS(self) # <<<<<<<<<<<<<<
18855 : *
18856 : * @property
18857 : */
18858 : __pyx_r = PyArray_DIMS(__pyx_v_self);
18859 : goto __pyx_L0;
18860 :
18861 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384
18862 : *
18863 : * @property
18864 : * cdef inline npy_intp *shape(self) noexcept nogil: # <<<<<<<<<<<<<<
18865 : * """Returns a pointer to the dimensions/shape of the array.
18866 : * The number of elements matches the number of dimensions of the array (ndim).
18867 : */
18868 :
18869 : /* function exit code */
18870 : __pyx_L0:;
18871 : return __pyx_r;
18872 : }
18873 :
18874 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392
18875 : *
18876 : * @property
18877 : * cdef inline npy_intp *strides(self) noexcept nogil: # <<<<<<<<<<<<<<
18878 : * """Returns a pointer to the strides of the array.
18879 : * The number of elements matches the number of dimensions of the array (ndim).
18880 : */
18881 :
18882 : static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) {
18883 : npy_intp *__pyx_r;
18884 :
18885 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":396
18886 : * The number of elements matches the number of dimensions of the array (ndim).
18887 : * """
18888 : * return PyArray_STRIDES(self) # <<<<<<<<<<<<<<
18889 : *
18890 : * @property
18891 : */
18892 : __pyx_r = PyArray_STRIDES(__pyx_v_self);
18893 : goto __pyx_L0;
18894 :
18895 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392
18896 : *
18897 : * @property
18898 : * cdef inline npy_intp *strides(self) noexcept nogil: # <<<<<<<<<<<<<<
18899 : * """Returns a pointer to the strides of the array.
18900 : * The number of elements matches the number of dimensions of the array (ndim).
18901 : */
18902 :
18903 : /* function exit code */
18904 : __pyx_L0:;
18905 : return __pyx_r;
18906 : }
18907 :
18908 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399
18909 : *
18910 : * @property
18911 : * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<<
18912 : * """Returns the total size (in number of elements) of the array.
18913 : * """
18914 : */
18915 :
18916 : static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) {
18917 : npy_intp __pyx_r;
18918 :
18919 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":402
18920 : * """Returns the total size (in number of elements) of the array.
18921 : * """
18922 : * return PyArray_SIZE(self) # <<<<<<<<<<<<<<
18923 : *
18924 : * @property
18925 : */
18926 : __pyx_r = PyArray_SIZE(__pyx_v_self);
18927 : goto __pyx_L0;
18928 :
18929 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399
18930 : *
18931 : * @property
18932 : * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<<
18933 : * """Returns the total size (in number of elements) of the array.
18934 : * """
18935 : */
18936 :
18937 : /* function exit code */
18938 : __pyx_L0:;
18939 : return __pyx_r;
18940 : }
18941 :
18942 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405
18943 : *
18944 : * @property
18945 : * cdef inline char* data(self) noexcept nogil: # <<<<<<<<<<<<<<
18946 : * """The pointer to the data buffer as a char*.
18947 : * This is provided for legacy reasons to avoid direct struct field access.
18948 : */
18949 :
18950 : static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) {
18951 : char *__pyx_r;
18952 :
18953 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":411
18954 : * of `PyArray_DATA()` instead, which returns a 'void*'.
18955 : * """
18956 : * return PyArray_BYTES(self) # <<<<<<<<<<<<<<
18957 : *
18958 : *
18959 : */
18960 : __pyx_r = PyArray_BYTES(__pyx_v_self);
18961 : goto __pyx_L0;
18962 :
18963 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405
18964 : *
18965 : * @property
18966 : * cdef inline char* data(self) noexcept nogil: # <<<<<<<<<<<<<<
18967 : * """The pointer to the data buffer as a char*.
18968 : * This is provided for legacy reasons to avoid direct struct field access.
18969 : */
18970 :
18971 : /* function exit code */
18972 : __pyx_L0:;
18973 : return __pyx_r;
18974 : }
18975 :
18976 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806
18977 : * ctypedef long double complex clongdouble_t
18978 : *
18979 : * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
18980 : * return PyArray_MultiIterNew(1, <void*>a)
18981 : *
18982 : */
18983 :
18984 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
18985 : PyObject *__pyx_r = NULL;
18986 : __Pyx_RefNannyDeclarations
18987 : PyObject *__pyx_t_1 = NULL;
18988 : int __pyx_lineno = 0;
18989 : const char *__pyx_filename = NULL;
18990 : int __pyx_clineno = 0;
18991 : __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1);
18992 :
18993 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":807
18994 : *
18995 : * cdef inline object PyArray_MultiIterNew1(a):
18996 : * return PyArray_MultiIterNew(1, <void*>a) # <<<<<<<<<<<<<<
18997 : *
18998 : * cdef inline object PyArray_MultiIterNew2(a, b):
18999 : */
19000 : __Pyx_XDECREF(__pyx_r);
19001 : __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 807, __pyx_L1_error)
19002 : __Pyx_GOTREF(__pyx_t_1);
19003 : __pyx_r = __pyx_t_1;
19004 : __pyx_t_1 = 0;
19005 : goto __pyx_L0;
19006 :
19007 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806
19008 : * ctypedef long double complex clongdouble_t
19009 : *
19010 : * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<<
19011 : * return PyArray_MultiIterNew(1, <void*>a)
19012 : *
19013 : */
19014 :
19015 : /* function exit code */
19016 : __pyx_L1_error:;
19017 : __Pyx_XDECREF(__pyx_t_1);
19018 : __Pyx_AddTraceback("numpy.PyArray_MultiIterNew1", __pyx_clineno, __pyx_lineno, __pyx_filename);
19019 : __pyx_r = 0;
19020 : __pyx_L0:;
19021 : __Pyx_XGIVEREF(__pyx_r);
19022 : __Pyx_RefNannyFinishContext();
19023 : return __pyx_r;
19024 : }
19025 :
19026 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809
19027 : * return PyArray_MultiIterNew(1, <void*>a)
19028 : *
19029 : * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
19030 : * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19031 : *
19032 : */
19033 :
19034 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) {
19035 : PyObject *__pyx_r = NULL;
19036 : __Pyx_RefNannyDeclarations
19037 : PyObject *__pyx_t_1 = NULL;
19038 : int __pyx_lineno = 0;
19039 : const char *__pyx_filename = NULL;
19040 : int __pyx_clineno = 0;
19041 : __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1);
19042 :
19043 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":810
19044 : *
19045 : * cdef inline object PyArray_MultiIterNew2(a, b):
19046 : * return PyArray_MultiIterNew(2, <void*>a, <void*>b) # <<<<<<<<<<<<<<
19047 : *
19048 : * cdef inline object PyArray_MultiIterNew3(a, b, c):
19049 : */
19050 : __Pyx_XDECREF(__pyx_r);
19051 : __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 810, __pyx_L1_error)
19052 : __Pyx_GOTREF(__pyx_t_1);
19053 : __pyx_r = __pyx_t_1;
19054 : __pyx_t_1 = 0;
19055 : goto __pyx_L0;
19056 :
19057 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809
19058 : * return PyArray_MultiIterNew(1, <void*>a)
19059 : *
19060 : * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<<
19061 : * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19062 : *
19063 : */
19064 :
19065 : /* function exit code */
19066 : __pyx_L1_error:;
19067 : __Pyx_XDECREF(__pyx_t_1);
19068 : __Pyx_AddTraceback("numpy.PyArray_MultiIterNew2", __pyx_clineno, __pyx_lineno, __pyx_filename);
19069 : __pyx_r = 0;
19070 : __pyx_L0:;
19071 : __Pyx_XGIVEREF(__pyx_r);
19072 : __Pyx_RefNannyFinishContext();
19073 : return __pyx_r;
19074 : }
19075 :
19076 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812
19077 : * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19078 : *
19079 : * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
19080 : * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19081 : *
19082 : */
19083 :
19084 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) {
19085 : PyObject *__pyx_r = NULL;
19086 : __Pyx_RefNannyDeclarations
19087 : PyObject *__pyx_t_1 = NULL;
19088 : int __pyx_lineno = 0;
19089 : const char *__pyx_filename = NULL;
19090 : int __pyx_clineno = 0;
19091 : __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1);
19092 :
19093 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":813
19094 : *
19095 : * cdef inline object PyArray_MultiIterNew3(a, b, c):
19096 : * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c) # <<<<<<<<<<<<<<
19097 : *
19098 : * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
19099 : */
19100 : __Pyx_XDECREF(__pyx_r);
19101 : __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 813, __pyx_L1_error)
19102 : __Pyx_GOTREF(__pyx_t_1);
19103 : __pyx_r = __pyx_t_1;
19104 : __pyx_t_1 = 0;
19105 : goto __pyx_L0;
19106 :
19107 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812
19108 : * return PyArray_MultiIterNew(2, <void*>a, <void*>b)
19109 : *
19110 : * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<<
19111 : * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19112 : *
19113 : */
19114 :
19115 : /* function exit code */
19116 : __pyx_L1_error:;
19117 : __Pyx_XDECREF(__pyx_t_1);
19118 : __Pyx_AddTraceback("numpy.PyArray_MultiIterNew3", __pyx_clineno, __pyx_lineno, __pyx_filename);
19119 : __pyx_r = 0;
19120 : __pyx_L0:;
19121 : __Pyx_XGIVEREF(__pyx_r);
19122 : __Pyx_RefNannyFinishContext();
19123 : return __pyx_r;
19124 : }
19125 :
19126 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815
19127 : * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19128 : *
19129 : * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
19130 : * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19131 : *
19132 : */
19133 :
19134 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) {
19135 : PyObject *__pyx_r = NULL;
19136 : __Pyx_RefNannyDeclarations
19137 : PyObject *__pyx_t_1 = NULL;
19138 : int __pyx_lineno = 0;
19139 : const char *__pyx_filename = NULL;
19140 : int __pyx_clineno = 0;
19141 : __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1);
19142 :
19143 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":816
19144 : *
19145 : * cdef inline object PyArray_MultiIterNew4(a, b, c, d):
19146 : * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d) # <<<<<<<<<<<<<<
19147 : *
19148 : * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
19149 : */
19150 : __Pyx_XDECREF(__pyx_r);
19151 : __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 816, __pyx_L1_error)
19152 : __Pyx_GOTREF(__pyx_t_1);
19153 : __pyx_r = __pyx_t_1;
19154 : __pyx_t_1 = 0;
19155 : goto __pyx_L0;
19156 :
19157 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815
19158 : * return PyArray_MultiIterNew(3, <void*>a, <void*>b, <void*> c)
19159 : *
19160 : * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<<
19161 : * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19162 : *
19163 : */
19164 :
19165 : /* function exit code */
19166 : __pyx_L1_error:;
19167 : __Pyx_XDECREF(__pyx_t_1);
19168 : __Pyx_AddTraceback("numpy.PyArray_MultiIterNew4", __pyx_clineno, __pyx_lineno, __pyx_filename);
19169 : __pyx_r = 0;
19170 : __pyx_L0:;
19171 : __Pyx_XGIVEREF(__pyx_r);
19172 : __Pyx_RefNannyFinishContext();
19173 : return __pyx_r;
19174 : }
19175 :
19176 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818
19177 : * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19178 : *
19179 : * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
19180 : * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19181 : *
19182 : */
19183 :
19184 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) {
19185 : PyObject *__pyx_r = NULL;
19186 : __Pyx_RefNannyDeclarations
19187 : PyObject *__pyx_t_1 = NULL;
19188 : int __pyx_lineno = 0;
19189 : const char *__pyx_filename = NULL;
19190 : int __pyx_clineno = 0;
19191 : __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1);
19192 :
19193 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":819
19194 : *
19195 : * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e):
19196 : * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e) # <<<<<<<<<<<<<<
19197 : *
19198 : * cdef inline tuple PyDataType_SHAPE(dtype d):
19199 : */
19200 : __Pyx_XDECREF(__pyx_r);
19201 : __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 819, __pyx_L1_error)
19202 : __Pyx_GOTREF(__pyx_t_1);
19203 : __pyx_r = __pyx_t_1;
19204 : __pyx_t_1 = 0;
19205 : goto __pyx_L0;
19206 :
19207 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818
19208 : * return PyArray_MultiIterNew(4, <void*>a, <void*>b, <void*>c, <void*> d)
19209 : *
19210 : * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<<
19211 : * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19212 : *
19213 : */
19214 :
19215 : /* function exit code */
19216 : __pyx_L1_error:;
19217 : __Pyx_XDECREF(__pyx_t_1);
19218 : __Pyx_AddTraceback("numpy.PyArray_MultiIterNew5", __pyx_clineno, __pyx_lineno, __pyx_filename);
19219 : __pyx_r = 0;
19220 : __pyx_L0:;
19221 : __Pyx_XGIVEREF(__pyx_r);
19222 : __Pyx_RefNannyFinishContext();
19223 : return __pyx_r;
19224 : }
19225 :
19226 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821
19227 : * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19228 : *
19229 : * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
19230 : * if PyDataType_HASSUBARRAY(d):
19231 : * return <tuple>d.subarray.shape
19232 : */
19233 :
19234 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) {
19235 : PyObject *__pyx_r = NULL;
19236 : __Pyx_RefNannyDeclarations
19237 : int __pyx_t_1;
19238 : PyObject *__pyx_t_2;
19239 : __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1);
19240 :
19241 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822
19242 : *
19243 : * cdef inline tuple PyDataType_SHAPE(dtype d):
19244 : * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
19245 : * return <tuple>d.subarray.shape
19246 : * else:
19247 : */
19248 : __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d);
19249 : if (__pyx_t_1) {
19250 :
19251 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":823
19252 : * cdef inline tuple PyDataType_SHAPE(dtype d):
19253 : * if PyDataType_HASSUBARRAY(d):
19254 : * return <tuple>d.subarray.shape # <<<<<<<<<<<<<<
19255 : * else:
19256 : * return ()
19257 : */
19258 : __Pyx_XDECREF(__pyx_r);
19259 : __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray_subarray(__pyx_v_d)->shape;
19260 : __Pyx_INCREF(((PyObject*)__pyx_t_2));
19261 : __pyx_r = ((PyObject*)__pyx_t_2);
19262 : goto __pyx_L0;
19263 :
19264 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822
19265 : *
19266 : * cdef inline tuple PyDataType_SHAPE(dtype d):
19267 : * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<<
19268 : * return <tuple>d.subarray.shape
19269 : * else:
19270 : */
19271 : }
19272 :
19273 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":825
19274 : * return <tuple>d.subarray.shape
19275 : * else:
19276 : * return () # <<<<<<<<<<<<<<
19277 : *
19278 : *
19279 : */
19280 : /*else*/ {
19281 : __Pyx_XDECREF(__pyx_r);
19282 : __Pyx_INCREF(__pyx_empty_tuple);
19283 : __pyx_r = __pyx_empty_tuple;
19284 : goto __pyx_L0;
19285 : }
19286 :
19287 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821
19288 : * return PyArray_MultiIterNew(5, <void*>a, <void*>b, <void*>c, <void*> d, <void*> e)
19289 : *
19290 : * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<<
19291 : * if PyDataType_HASSUBARRAY(d):
19292 : * return <tuple>d.subarray.shape
19293 : */
19294 :
19295 : /* function exit code */
19296 : __pyx_L0:;
19297 : __Pyx_XGIVEREF(__pyx_r);
19298 : __Pyx_RefNannyFinishContext();
19299 : return __pyx_r;
19300 : }
19301 :
19302 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009
19303 : * int _import_umath() except -1
19304 : *
19305 : * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
19306 : * Py_INCREF(base) # important to do this before stealing the reference below!
19307 : * PyArray_SetBaseObject(arr, base)
19308 : */
19309 :
19310 : static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) {
19311 : int __pyx_t_1;
19312 : int __pyx_lineno = 0;
19313 : const char *__pyx_filename = NULL;
19314 : int __pyx_clineno = 0;
19315 :
19316 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1010
19317 : *
19318 : * cdef inline void set_array_base(ndarray arr, object base) except *:
19319 : * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<<
19320 : * PyArray_SetBaseObject(arr, base)
19321 : *
19322 : */
19323 : Py_INCREF(__pyx_v_base);
19324 :
19325 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1011
19326 : * cdef inline void set_array_base(ndarray arr, object base) except *:
19327 : * Py_INCREF(base) # important to do this before stealing the reference below!
19328 : * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<<
19329 : *
19330 : * cdef inline object get_array_base(ndarray arr):
19331 : */
19332 : __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 1011, __pyx_L1_error)
19333 :
19334 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009
19335 : * int _import_umath() except -1
19336 : *
19337 : * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<<
19338 : * Py_INCREF(base) # important to do this before stealing the reference below!
19339 : * PyArray_SetBaseObject(arr, base)
19340 : */
19341 :
19342 : /* function exit code */
19343 : goto __pyx_L0;
19344 : __pyx_L1_error:;
19345 : __Pyx_AddTraceback("numpy.set_array_base", __pyx_clineno, __pyx_lineno, __pyx_filename);
19346 : __pyx_L0:;
19347 : }
19348 :
19349 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013
19350 : * PyArray_SetBaseObject(arr, base)
19351 : *
19352 : * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
19353 : * base = PyArray_BASE(arr)
19354 : * if base is NULL:
19355 : */
19356 :
19357 : static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
19358 : PyObject *__pyx_v_base;
19359 : PyObject *__pyx_r = NULL;
19360 : __Pyx_RefNannyDeclarations
19361 : int __pyx_t_1;
19362 : __Pyx_RefNannySetupContext("get_array_base", 1);
19363 :
19364 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1014
19365 : *
19366 : * cdef inline object get_array_base(ndarray arr):
19367 : * base = PyArray_BASE(arr) # <<<<<<<<<<<<<<
19368 : * if base is NULL:
19369 : * return None
19370 : */
19371 : __pyx_v_base = PyArray_BASE(__pyx_v_arr);
19372 :
19373 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015
19374 : * cdef inline object get_array_base(ndarray arr):
19375 : * base = PyArray_BASE(arr)
19376 : * if base is NULL: # <<<<<<<<<<<<<<
19377 : * return None
19378 : * return <object>base
19379 : */
19380 : __pyx_t_1 = (__pyx_v_base == NULL);
19381 : if (__pyx_t_1) {
19382 :
19383 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1016
19384 : * base = PyArray_BASE(arr)
19385 : * if base is NULL:
19386 : * return None # <<<<<<<<<<<<<<
19387 : * return <object>base
19388 : *
19389 : */
19390 : __Pyx_XDECREF(__pyx_r);
19391 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
19392 : goto __pyx_L0;
19393 :
19394 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015
19395 : * cdef inline object get_array_base(ndarray arr):
19396 : * base = PyArray_BASE(arr)
19397 : * if base is NULL: # <<<<<<<<<<<<<<
19398 : * return None
19399 : * return <object>base
19400 : */
19401 : }
19402 :
19403 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1017
19404 : * if base is NULL:
19405 : * return None
19406 : * return <object>base # <<<<<<<<<<<<<<
19407 : *
19408 : * # Versions of the import_* functions which are more suitable for
19409 : */
19410 : __Pyx_XDECREF(__pyx_r);
19411 : __Pyx_INCREF(((PyObject *)__pyx_v_base));
19412 : __pyx_r = ((PyObject *)__pyx_v_base);
19413 : goto __pyx_L0;
19414 :
19415 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013
19416 : * PyArray_SetBaseObject(arr, base)
19417 : *
19418 : * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<<
19419 : * base = PyArray_BASE(arr)
19420 : * if base is NULL:
19421 : */
19422 :
19423 : /* function exit code */
19424 : __pyx_L0:;
19425 : __Pyx_XGIVEREF(__pyx_r);
19426 : __Pyx_RefNannyFinishContext();
19427 : return __pyx_r;
19428 : }
19429 :
19430 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021
19431 : * # Versions of the import_* functions which are more suitable for
19432 : * # Cython code.
19433 : * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
19434 : * try:
19435 : * __pyx_import_array()
19436 : */
19437 :
19438 1 : static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) {
19439 1 : int __pyx_r;
19440 : __Pyx_RefNannyDeclarations
19441 1 : PyObject *__pyx_t_1 = NULL;
19442 1 : PyObject *__pyx_t_2 = NULL;
19443 1 : PyObject *__pyx_t_3 = NULL;
19444 1 : int __pyx_t_4;
19445 1 : PyObject *__pyx_t_5 = NULL;
19446 1 : PyObject *__pyx_t_6 = NULL;
19447 1 : PyObject *__pyx_t_7 = NULL;
19448 1 : PyObject *__pyx_t_8 = NULL;
19449 1 : int __pyx_lineno = 0;
19450 1 : const char *__pyx_filename = NULL;
19451 1 : int __pyx_clineno = 0;
19452 1 : __Pyx_RefNannySetupContext("import_array", 1);
19453 :
19454 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
19455 : * # Cython code.
19456 : * cdef inline int import_array() except -1:
19457 : * try: # <<<<<<<<<<<<<<
19458 : * __pyx_import_array()
19459 : * except Exception:
19460 : */
19461 : {
19462 1 : __Pyx_PyThreadState_declare
19463 1 : __Pyx_PyThreadState_assign
19464 1 : __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
19465 1 : __Pyx_XGOTREF(__pyx_t_1);
19466 1 : __Pyx_XGOTREF(__pyx_t_2);
19467 1 : __Pyx_XGOTREF(__pyx_t_3);
19468 : /*try:*/ {
19469 :
19470 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1023
19471 : * cdef inline int import_array() except -1:
19472 : * try:
19473 : * __pyx_import_array() # <<<<<<<<<<<<<<
19474 : * except Exception:
19475 : * raise ImportError("numpy._core.multiarray failed to import")
19476 : */
19477 1 : __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1023, __pyx_L3_error)
19478 :
19479 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
19480 : * # Cython code.
19481 : * cdef inline int import_array() except -1:
19482 : * try: # <<<<<<<<<<<<<<
19483 : * __pyx_import_array()
19484 : * except Exception:
19485 : */
19486 : }
19487 1 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
19488 1 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
19489 1 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
19490 1 : goto __pyx_L8_try_end;
19491 0 : __pyx_L3_error:;
19492 :
19493 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1024
19494 : * try:
19495 : * __pyx_import_array()
19496 : * except Exception: # <<<<<<<<<<<<<<
19497 : * raise ImportError("numpy._core.multiarray failed to import")
19498 : *
19499 : */
19500 0 : __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
19501 0 : if (__pyx_t_4) {
19502 0 : __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
19503 0 : if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1024, __pyx_L5_except_error)
19504 0 : __Pyx_XGOTREF(__pyx_t_5);
19505 0 : __Pyx_XGOTREF(__pyx_t_6);
19506 0 : __Pyx_XGOTREF(__pyx_t_7);
19507 :
19508 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025
19509 : * __pyx_import_array()
19510 : * except Exception:
19511 : * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
19512 : *
19513 : * cdef inline int import_umath() except -1:
19514 : */
19515 0 : __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1025, __pyx_L5_except_error)
19516 0 : __Pyx_GOTREF(__pyx_t_8);
19517 0 : __Pyx_Raise(__pyx_t_8, 0, 0, 0);
19518 0 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19519 0 : __PYX_ERR(2, 1025, __pyx_L5_except_error)
19520 : }
19521 0 : goto __pyx_L5_except_error;
19522 :
19523 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022
19524 : * # Cython code.
19525 : * cdef inline int import_array() except -1:
19526 : * try: # <<<<<<<<<<<<<<
19527 : * __pyx_import_array()
19528 : * except Exception:
19529 : */
19530 0 : __pyx_L5_except_error:;
19531 0 : __Pyx_XGIVEREF(__pyx_t_1);
19532 0 : __Pyx_XGIVEREF(__pyx_t_2);
19533 0 : __Pyx_XGIVEREF(__pyx_t_3);
19534 0 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
19535 0 : goto __pyx_L1_error;
19536 1 : __pyx_L8_try_end:;
19537 : }
19538 :
19539 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021
19540 : * # Versions of the import_* functions which are more suitable for
19541 : * # Cython code.
19542 : * cdef inline int import_array() except -1: # <<<<<<<<<<<<<<
19543 : * try:
19544 : * __pyx_import_array()
19545 : */
19546 :
19547 : /* function exit code */
19548 1 : __pyx_r = 0;
19549 1 : goto __pyx_L0;
19550 0 : __pyx_L1_error:;
19551 0 : __Pyx_XDECREF(__pyx_t_5);
19552 0 : __Pyx_XDECREF(__pyx_t_6);
19553 0 : __Pyx_XDECREF(__pyx_t_7);
19554 0 : __Pyx_XDECREF(__pyx_t_8);
19555 0 : __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename);
19556 0 : __pyx_r = -1;
19557 1 : __pyx_L0:;
19558 1 : __Pyx_RefNannyFinishContext();
19559 1 : return __pyx_r;
19560 : }
19561 :
19562 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027
19563 : * raise ImportError("numpy._core.multiarray failed to import")
19564 : *
19565 : * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
19566 : * try:
19567 : * _import_umath()
19568 : */
19569 :
19570 : static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) {
19571 : int __pyx_r;
19572 : __Pyx_RefNannyDeclarations
19573 : PyObject *__pyx_t_1 = NULL;
19574 : PyObject *__pyx_t_2 = NULL;
19575 : PyObject *__pyx_t_3 = NULL;
19576 : int __pyx_t_4;
19577 : PyObject *__pyx_t_5 = NULL;
19578 : PyObject *__pyx_t_6 = NULL;
19579 : PyObject *__pyx_t_7 = NULL;
19580 : PyObject *__pyx_t_8 = NULL;
19581 : int __pyx_lineno = 0;
19582 : const char *__pyx_filename = NULL;
19583 : int __pyx_clineno = 0;
19584 : __Pyx_RefNannySetupContext("import_umath", 1);
19585 :
19586 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
19587 : *
19588 : * cdef inline int import_umath() except -1:
19589 : * try: # <<<<<<<<<<<<<<
19590 : * _import_umath()
19591 : * except Exception:
19592 : */
19593 : {
19594 : __Pyx_PyThreadState_declare
19595 : __Pyx_PyThreadState_assign
19596 : __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
19597 : __Pyx_XGOTREF(__pyx_t_1);
19598 : __Pyx_XGOTREF(__pyx_t_2);
19599 : __Pyx_XGOTREF(__pyx_t_3);
19600 : /*try:*/ {
19601 :
19602 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029
19603 : * cdef inline int import_umath() except -1:
19604 : * try:
19605 : * _import_umath() # <<<<<<<<<<<<<<
19606 : * except Exception:
19607 : * raise ImportError("numpy._core.umath failed to import")
19608 : */
19609 : __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1029, __pyx_L3_error)
19610 :
19611 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
19612 : *
19613 : * cdef inline int import_umath() except -1:
19614 : * try: # <<<<<<<<<<<<<<
19615 : * _import_umath()
19616 : * except Exception:
19617 : */
19618 : }
19619 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
19620 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
19621 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
19622 : goto __pyx_L8_try_end;
19623 : __pyx_L3_error:;
19624 :
19625 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1030
19626 : * try:
19627 : * _import_umath()
19628 : * except Exception: # <<<<<<<<<<<<<<
19629 : * raise ImportError("numpy._core.umath failed to import")
19630 : *
19631 : */
19632 : __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
19633 : if (__pyx_t_4) {
19634 : __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
19635 : if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1030, __pyx_L5_except_error)
19636 : __Pyx_XGOTREF(__pyx_t_5);
19637 : __Pyx_XGOTREF(__pyx_t_6);
19638 : __Pyx_XGOTREF(__pyx_t_7);
19639 :
19640 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031
19641 : * _import_umath()
19642 : * except Exception:
19643 : * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
19644 : *
19645 : * cdef inline int import_ufunc() except -1:
19646 : */
19647 : __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1031, __pyx_L5_except_error)
19648 : __Pyx_GOTREF(__pyx_t_8);
19649 : __Pyx_Raise(__pyx_t_8, 0, 0, 0);
19650 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19651 : __PYX_ERR(2, 1031, __pyx_L5_except_error)
19652 : }
19653 : goto __pyx_L5_except_error;
19654 :
19655 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028
19656 : *
19657 : * cdef inline int import_umath() except -1:
19658 : * try: # <<<<<<<<<<<<<<
19659 : * _import_umath()
19660 : * except Exception:
19661 : */
19662 : __pyx_L5_except_error:;
19663 : __Pyx_XGIVEREF(__pyx_t_1);
19664 : __Pyx_XGIVEREF(__pyx_t_2);
19665 : __Pyx_XGIVEREF(__pyx_t_3);
19666 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
19667 : goto __pyx_L1_error;
19668 : __pyx_L8_try_end:;
19669 : }
19670 :
19671 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027
19672 : * raise ImportError("numpy._core.multiarray failed to import")
19673 : *
19674 : * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<<
19675 : * try:
19676 : * _import_umath()
19677 : */
19678 :
19679 : /* function exit code */
19680 : __pyx_r = 0;
19681 : goto __pyx_L0;
19682 : __pyx_L1_error:;
19683 : __Pyx_XDECREF(__pyx_t_5);
19684 : __Pyx_XDECREF(__pyx_t_6);
19685 : __Pyx_XDECREF(__pyx_t_7);
19686 : __Pyx_XDECREF(__pyx_t_8);
19687 : __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename);
19688 : __pyx_r = -1;
19689 : __pyx_L0:;
19690 : __Pyx_RefNannyFinishContext();
19691 : return __pyx_r;
19692 : }
19693 :
19694 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033
19695 : * raise ImportError("numpy._core.umath failed to import")
19696 : *
19697 : * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
19698 : * try:
19699 : * _import_umath()
19700 : */
19701 :
19702 : static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) {
19703 : int __pyx_r;
19704 : __Pyx_RefNannyDeclarations
19705 : PyObject *__pyx_t_1 = NULL;
19706 : PyObject *__pyx_t_2 = NULL;
19707 : PyObject *__pyx_t_3 = NULL;
19708 : int __pyx_t_4;
19709 : PyObject *__pyx_t_5 = NULL;
19710 : PyObject *__pyx_t_6 = NULL;
19711 : PyObject *__pyx_t_7 = NULL;
19712 : PyObject *__pyx_t_8 = NULL;
19713 : int __pyx_lineno = 0;
19714 : const char *__pyx_filename = NULL;
19715 : int __pyx_clineno = 0;
19716 : __Pyx_RefNannySetupContext("import_ufunc", 1);
19717 :
19718 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
19719 : *
19720 : * cdef inline int import_ufunc() except -1:
19721 : * try: # <<<<<<<<<<<<<<
19722 : * _import_umath()
19723 : * except Exception:
19724 : */
19725 : {
19726 : __Pyx_PyThreadState_declare
19727 : __Pyx_PyThreadState_assign
19728 : __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
19729 : __Pyx_XGOTREF(__pyx_t_1);
19730 : __Pyx_XGOTREF(__pyx_t_2);
19731 : __Pyx_XGOTREF(__pyx_t_3);
19732 : /*try:*/ {
19733 :
19734 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1035
19735 : * cdef inline int import_ufunc() except -1:
19736 : * try:
19737 : * _import_umath() # <<<<<<<<<<<<<<
19738 : * except Exception:
19739 : * raise ImportError("numpy._core.umath failed to import")
19740 : */
19741 : __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error)
19742 :
19743 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
19744 : *
19745 : * cdef inline int import_ufunc() except -1:
19746 : * try: # <<<<<<<<<<<<<<
19747 : * _import_umath()
19748 : * except Exception:
19749 : */
19750 : }
19751 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
19752 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
19753 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
19754 : goto __pyx_L8_try_end;
19755 : __pyx_L3_error:;
19756 :
19757 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1036
19758 : * try:
19759 : * _import_umath()
19760 : * except Exception: # <<<<<<<<<<<<<<
19761 : * raise ImportError("numpy._core.umath failed to import")
19762 : *
19763 : */
19764 : __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])));
19765 : if (__pyx_t_4) {
19766 : __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
19767 : if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error)
19768 : __Pyx_XGOTREF(__pyx_t_5);
19769 : __Pyx_XGOTREF(__pyx_t_6);
19770 : __Pyx_XGOTREF(__pyx_t_7);
19771 :
19772 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1037
19773 : * _import_umath()
19774 : * except Exception:
19775 : * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
19776 : *
19777 : *
19778 : */
19779 : __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error)
19780 : __Pyx_GOTREF(__pyx_t_8);
19781 : __Pyx_Raise(__pyx_t_8, 0, 0, 0);
19782 : __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
19783 : __PYX_ERR(2, 1037, __pyx_L5_except_error)
19784 : }
19785 : goto __pyx_L5_except_error;
19786 :
19787 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034
19788 : *
19789 : * cdef inline int import_ufunc() except -1:
19790 : * try: # <<<<<<<<<<<<<<
19791 : * _import_umath()
19792 : * except Exception:
19793 : */
19794 : __pyx_L5_except_error:;
19795 : __Pyx_XGIVEREF(__pyx_t_1);
19796 : __Pyx_XGIVEREF(__pyx_t_2);
19797 : __Pyx_XGIVEREF(__pyx_t_3);
19798 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
19799 : goto __pyx_L1_error;
19800 : __pyx_L8_try_end:;
19801 : }
19802 :
19803 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033
19804 : * raise ImportError("numpy._core.umath failed to import")
19805 : *
19806 : * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<<
19807 : * try:
19808 : * _import_umath()
19809 : */
19810 :
19811 : /* function exit code */
19812 : __pyx_r = 0;
19813 : goto __pyx_L0;
19814 : __pyx_L1_error:;
19815 : __Pyx_XDECREF(__pyx_t_5);
19816 : __Pyx_XDECREF(__pyx_t_6);
19817 : __Pyx_XDECREF(__pyx_t_7);
19818 : __Pyx_XDECREF(__pyx_t_8);
19819 : __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename);
19820 : __pyx_r = -1;
19821 : __pyx_L0:;
19822 : __Pyx_RefNannyFinishContext();
19823 : return __pyx_r;
19824 : }
19825 :
19826 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040
19827 : *
19828 : *
19829 : * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
19830 : * """
19831 : * Cython equivalent of `isinstance(obj, np.timedelta64)`
19832 : */
19833 :
19834 : static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) {
19835 : int __pyx_r;
19836 :
19837 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052
19838 : * bool
19839 : * """
19840 : * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<<
19841 : *
19842 : *
19843 : */
19844 : __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type));
19845 : goto __pyx_L0;
19846 :
19847 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040
19848 : *
19849 : *
19850 : * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<<
19851 : * """
19852 : * Cython equivalent of `isinstance(obj, np.timedelta64)`
19853 : */
19854 :
19855 : /* function exit code */
19856 : __pyx_L0:;
19857 : return __pyx_r;
19858 : }
19859 :
19860 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055
19861 : *
19862 : *
19863 : * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
19864 : * """
19865 : * Cython equivalent of `isinstance(obj, np.datetime64)`
19866 : */
19867 :
19868 : static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) {
19869 : int __pyx_r;
19870 :
19871 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1067
19872 : * bool
19873 : * """
19874 : * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<<
19875 : *
19876 : *
19877 : */
19878 : __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type));
19879 : goto __pyx_L0;
19880 :
19881 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055
19882 : *
19883 : *
19884 : * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<<
19885 : * """
19886 : * Cython equivalent of `isinstance(obj, np.datetime64)`
19887 : */
19888 :
19889 : /* function exit code */
19890 : __pyx_L0:;
19891 : return __pyx_r;
19892 : }
19893 :
19894 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070
19895 : *
19896 : *
19897 : * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19898 : * """
19899 : * returns the int64 value underlying scalar numpy datetime64 object
19900 : */
19901 :
19902 : static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) {
19903 : npy_datetime __pyx_r;
19904 :
19905 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1077
19906 : * also needed. That can be found using `get_datetime64_unit`.
19907 : * """
19908 : * return (<PyDatetimeScalarObject*>obj).obval # <<<<<<<<<<<<<<
19909 : *
19910 : *
19911 : */
19912 : __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval;
19913 : goto __pyx_L0;
19914 :
19915 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070
19916 : *
19917 : *
19918 : * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19919 : * """
19920 : * returns the int64 value underlying scalar numpy datetime64 object
19921 : */
19922 :
19923 : /* function exit code */
19924 : __pyx_L0:;
19925 : return __pyx_r;
19926 : }
19927 :
19928 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080
19929 : *
19930 : *
19931 : * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19932 : * """
19933 : * returns the int64 value underlying scalar numpy timedelta64 object
19934 : */
19935 :
19936 : static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) {
19937 : npy_timedelta __pyx_r;
19938 :
19939 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1084
19940 : * returns the int64 value underlying scalar numpy timedelta64 object
19941 : * """
19942 : * return (<PyTimedeltaScalarObject*>obj).obval # <<<<<<<<<<<<<<
19943 : *
19944 : *
19945 : */
19946 : __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval;
19947 : goto __pyx_L0;
19948 :
19949 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080
19950 : *
19951 : *
19952 : * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19953 : * """
19954 : * returns the int64 value underlying scalar numpy timedelta64 object
19955 : */
19956 :
19957 : /* function exit code */
19958 : __pyx_L0:;
19959 : return __pyx_r;
19960 : }
19961 :
19962 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087
19963 : *
19964 : *
19965 : * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19966 : * """
19967 : * returns the unit part of the dtype for a numpy datetime64 object.
19968 : */
19969 :
19970 : static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) {
19971 : NPY_DATETIMEUNIT __pyx_r;
19972 :
19973 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1091
19974 : * returns the unit part of the dtype for a numpy datetime64 object.
19975 : * """
19976 : * return <NPY_DATETIMEUNIT>(<PyDatetimeScalarObject*>obj).obmeta.base # <<<<<<<<<<<<<<
19977 : *
19978 : *
19979 : */
19980 : __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base);
19981 : goto __pyx_L0;
19982 :
19983 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087
19984 : *
19985 : *
19986 : * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<<
19987 : * """
19988 : * returns the unit part of the dtype for a numpy datetime64 object.
19989 : */
19990 :
19991 : /* function exit code */
19992 : __pyx_L0:;
19993 : return __pyx_r;
19994 : }
19995 :
19996 : /* "scipy/signal/_sosfilt.pyx":29
19997 : * @cython.boundscheck(False)
19998 : * @cython.wraparound(False)
19999 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
20000 : * DTYPE_floating_t [:, ::1] x,
20001 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20002 : */
20003 :
20004 16 : static void __pyx_fuse_0__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
20005 16 : Py_ssize_t __pyx_v_n_signals;
20006 16 : Py_ssize_t __pyx_v_n_samples;
20007 16 : Py_ssize_t __pyx_v_n_sections;
20008 16 : Py_ssize_t __pyx_v_i;
20009 16 : Py_ssize_t __pyx_v_n;
20010 16 : Py_ssize_t __pyx_v_s;
20011 16 : float __pyx_v_x_new;
20012 16 : float __pyx_v_x_cur;
20013 16 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
20014 16 : float __pyx_v_const_1;
20015 16 : Py_ssize_t __pyx_t_1;
20016 16 : Py_ssize_t __pyx_t_2;
20017 16 : Py_ssize_t __pyx_t_3;
20018 16 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
20019 16 : Py_ssize_t __pyx_t_5;
20020 16 : Py_ssize_t __pyx_t_6;
20021 16 : Py_ssize_t __pyx_t_7;
20022 16 : Py_ssize_t __pyx_t_8;
20023 16 : Py_ssize_t __pyx_t_9;
20024 16 : Py_ssize_t __pyx_t_10;
20025 16 : Py_ssize_t __pyx_t_11;
20026 16 : Py_ssize_t __pyx_t_12;
20027 16 : Py_ssize_t __pyx_t_13;
20028 16 : Py_ssize_t __pyx_t_14;
20029 16 : Py_ssize_t __pyx_t_15;
20030 16 : Py_ssize_t __pyx_t_16;
20031 16 : Py_ssize_t __pyx_t_17;
20032 16 : Py_ssize_t __pyx_t_18;
20033 :
20034 : /* "scipy/signal/_sosfilt.pyx":33
20035 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20036 : * # Modifies x and zi in place
20037 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
20038 : * cdef Py_ssize_t n_samples = x.shape[1]
20039 : * cdef Py_ssize_t n_sections = sos.shape[0]
20040 : */
20041 16 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
20042 :
20043 : /* "scipy/signal/_sosfilt.pyx":34
20044 : * # Modifies x and zi in place
20045 : * cdef Py_ssize_t n_signals = x.shape[0]
20046 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
20047 : * cdef Py_ssize_t n_sections = sos.shape[0]
20048 : * cdef Py_ssize_t i, n, s
20049 : */
20050 16 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
20051 :
20052 : /* "scipy/signal/_sosfilt.pyx":35
20053 : * cdef Py_ssize_t n_signals = x.shape[0]
20054 : * cdef Py_ssize_t n_samples = x.shape[1]
20055 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
20056 : * cdef Py_ssize_t i, n, s
20057 : * cdef DTYPE_floating_t x_new, x_cur
20058 : */
20059 16 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
20060 :
20061 : /* "scipy/signal/_sosfilt.pyx":39
20062 : * cdef DTYPE_floating_t x_new, x_cur
20063 : * cdef DTYPE_floating_t[:, ::1] zi_slice
20064 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
20065 : *
20066 : * # jumping through a few memoryview hoops to reduce array lookups,
20067 : */
20068 16 : __pyx_v_const_1 = 1.0;
20069 :
20070 : /* "scipy/signal/_sosfilt.pyx":43
20071 : * # jumping through a few memoryview hoops to reduce array lookups,
20072 : * # the original version is still in the gil version below.
20073 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
20074 : * zi_slice = zi[i, :, :]
20075 : * for n in xrange(n_samples):
20076 : */
20077 16 : __pyx_t_1 = __pyx_v_n_signals;
20078 16 : __pyx_t_2 = __pyx_t_1;
20079 32 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20080 16 : __pyx_v_i = __pyx_t_3;
20081 :
20082 : /* "scipy/signal/_sosfilt.pyx":44
20083 : * # the original version is still in the gil version below.
20084 : * for i in xrange(n_signals):
20085 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
20086 : * for n in xrange(n_samples):
20087 : *
20088 : */
20089 16 : __pyx_t_4.data = __pyx_v_zi.data;
20090 16 : __pyx_t_4.memview = __pyx_v_zi.memview;
20091 16 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
20092 : {
20093 16 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
20094 16 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
20095 16 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
20096 : }
20097 :
20098 16 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
20099 16 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
20100 16 : __pyx_t_4.suboffsets[0] = -1;
20101 :
20102 16 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
20103 16 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
20104 16 : __pyx_t_4.suboffsets[1] = -1;
20105 :
20106 16 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20107 16 : __pyx_v_zi_slice = __pyx_t_4;
20108 16 : __pyx_t_4.memview = NULL;
20109 16 : __pyx_t_4.data = NULL;
20110 :
20111 : /* "scipy/signal/_sosfilt.pyx":45
20112 : * for i in xrange(n_signals):
20113 : * zi_slice = zi[i, :, :]
20114 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
20115 : *
20116 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20117 : */
20118 16 : __pyx_t_5 = __pyx_v_n_samples;
20119 16 : __pyx_t_6 = __pyx_t_5;
20120 21304 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
20121 21288 : __pyx_v_n = __pyx_t_7;
20122 :
20123 : /* "scipy/signal/_sosfilt.pyx":47
20124 : * for n in xrange(n_samples):
20125 : *
20126 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
20127 : *
20128 : * for s in xrange(n_sections):
20129 : */
20130 21288 : __pyx_t_8 = __pyx_v_i;
20131 21288 : __pyx_t_9 = __pyx_v_n;
20132 21288 : __pyx_v_x_cur = (__pyx_v_const_1 * (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
20133 :
20134 : /* "scipy/signal/_sosfilt.pyx":49
20135 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20136 : *
20137 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
20138 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20139 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20140 : */
20141 21288 : __pyx_t_10 = __pyx_v_n_sections;
20142 21288 : __pyx_t_11 = __pyx_t_10;
20143 103416 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
20144 82128 : __pyx_v_s = __pyx_t_12;
20145 :
20146 : /* "scipy/signal/_sosfilt.pyx":50
20147 : *
20148 : * for s in xrange(n_sections):
20149 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
20150 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20151 : * + zi_slice[s, 1])
20152 : */
20153 82128 : __pyx_t_9 = __pyx_v_s;
20154 82128 : __pyx_t_8 = 0;
20155 82128 : __pyx_t_13 = __pyx_v_s;
20156 82128 : __pyx_t_14 = 0;
20157 82128 : __pyx_v_x_new = (((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_cur) + (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
20158 :
20159 : /* "scipy/signal/_sosfilt.pyx":51
20160 : * for s in xrange(n_sections):
20161 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20162 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20163 : * + zi_slice[s, 1])
20164 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20165 : */
20166 82128 : __pyx_t_14 = __pyx_v_s;
20167 82128 : __pyx_t_13 = 1;
20168 82128 : __pyx_t_8 = __pyx_v_s;
20169 82128 : __pyx_t_9 = 4;
20170 :
20171 : /* "scipy/signal/_sosfilt.pyx":52
20172 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20173 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20174 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
20175 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20176 : * x_cur = x_new
20177 : */
20178 82128 : __pyx_t_15 = __pyx_v_s;
20179 82128 : __pyx_t_16 = 1;
20180 :
20181 : /* "scipy/signal/_sosfilt.pyx":51
20182 : * for s in xrange(n_sections):
20183 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20184 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20185 : * + zi_slice[s, 1])
20186 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20187 : */
20188 82128 : __pyx_t_17 = __pyx_v_s;
20189 82128 : __pyx_t_18 = 0;
20190 82128 : *((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = ((((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))) * __pyx_v_x_cur) - ((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))) * __pyx_v_x_new)) + (*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
20191 :
20192 : /* "scipy/signal/_sosfilt.pyx":53
20193 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20194 : * + zi_slice[s, 1])
20195 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
20196 : * x_cur = x_new
20197 : *
20198 : */
20199 82128 : __pyx_t_16 = __pyx_v_s;
20200 82128 : __pyx_t_15 = 2;
20201 82128 : __pyx_t_9 = __pyx_v_s;
20202 82128 : __pyx_t_8 = 5;
20203 82128 : __pyx_t_13 = __pyx_v_s;
20204 82128 : __pyx_t_14 = 1;
20205 82128 : *((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = (((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))) * __pyx_v_x_cur) - ((*((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_new));
20206 :
20207 : /* "scipy/signal/_sosfilt.pyx":54
20208 : * + zi_slice[s, 1])
20209 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20210 : * x_cur = x_new # <<<<<<<<<<<<<<
20211 : *
20212 : * x[i, n] = x_cur
20213 : */
20214 82128 : __pyx_v_x_cur = __pyx_v_x_new;
20215 : }
20216 :
20217 : /* "scipy/signal/_sosfilt.pyx":56
20218 : * x_cur = x_new
20219 : *
20220 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
20221 : *
20222 : *
20223 : */
20224 21288 : __pyx_t_8 = __pyx_v_i;
20225 21288 : __pyx_t_9 = __pyx_v_n;
20226 21288 : *((float *) ( /* dim=1 */ ((char *) (((float *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
20227 : }
20228 : }
20229 :
20230 : /* "scipy/signal/_sosfilt.pyx":29
20231 : * @cython.boundscheck(False)
20232 : * @cython.wraparound(False)
20233 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
20234 : * DTYPE_floating_t [:, ::1] x,
20235 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20236 : */
20237 :
20238 : /* function exit code */
20239 16 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20240 16 : }
20241 :
20242 0 : static void __pyx_fuse_1__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
20243 0 : Py_ssize_t __pyx_v_n_signals;
20244 0 : Py_ssize_t __pyx_v_n_samples;
20245 0 : Py_ssize_t __pyx_v_n_sections;
20246 0 : Py_ssize_t __pyx_v_i;
20247 0 : Py_ssize_t __pyx_v_n;
20248 0 : Py_ssize_t __pyx_v_s;
20249 0 : __pyx_t_float_complex __pyx_v_x_new;
20250 0 : __pyx_t_float_complex __pyx_v_x_cur;
20251 0 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
20252 0 : __pyx_t_float_complex __pyx_v_const_1;
20253 0 : Py_ssize_t __pyx_t_1;
20254 0 : Py_ssize_t __pyx_t_2;
20255 0 : Py_ssize_t __pyx_t_3;
20256 0 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
20257 0 : Py_ssize_t __pyx_t_5;
20258 0 : Py_ssize_t __pyx_t_6;
20259 0 : Py_ssize_t __pyx_t_7;
20260 0 : Py_ssize_t __pyx_t_8;
20261 0 : Py_ssize_t __pyx_t_9;
20262 0 : Py_ssize_t __pyx_t_10;
20263 0 : Py_ssize_t __pyx_t_11;
20264 0 : Py_ssize_t __pyx_t_12;
20265 0 : Py_ssize_t __pyx_t_13;
20266 0 : Py_ssize_t __pyx_t_14;
20267 0 : Py_ssize_t __pyx_t_15;
20268 0 : Py_ssize_t __pyx_t_16;
20269 0 : Py_ssize_t __pyx_t_17;
20270 0 : Py_ssize_t __pyx_t_18;
20271 :
20272 : /* "scipy/signal/_sosfilt.pyx":33
20273 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20274 : * # Modifies x and zi in place
20275 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
20276 : * cdef Py_ssize_t n_samples = x.shape[1]
20277 : * cdef Py_ssize_t n_sections = sos.shape[0]
20278 : */
20279 0 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
20280 :
20281 : /* "scipy/signal/_sosfilt.pyx":34
20282 : * # Modifies x and zi in place
20283 : * cdef Py_ssize_t n_signals = x.shape[0]
20284 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
20285 : * cdef Py_ssize_t n_sections = sos.shape[0]
20286 : * cdef Py_ssize_t i, n, s
20287 : */
20288 0 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
20289 :
20290 : /* "scipy/signal/_sosfilt.pyx":35
20291 : * cdef Py_ssize_t n_signals = x.shape[0]
20292 : * cdef Py_ssize_t n_samples = x.shape[1]
20293 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
20294 : * cdef Py_ssize_t i, n, s
20295 : * cdef DTYPE_floating_t x_new, x_cur
20296 : */
20297 0 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
20298 :
20299 : /* "scipy/signal/_sosfilt.pyx":39
20300 : * cdef DTYPE_floating_t x_new, x_cur
20301 : * cdef DTYPE_floating_t[:, ::1] zi_slice
20302 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
20303 : *
20304 : * # jumping through a few memoryview hoops to reduce array lookups,
20305 : */
20306 0 : __pyx_v_const_1 = __pyx_t_float_complex_from_parts(1.0, 0);
20307 :
20308 : /* "scipy/signal/_sosfilt.pyx":43
20309 : * # jumping through a few memoryview hoops to reduce array lookups,
20310 : * # the original version is still in the gil version below.
20311 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
20312 : * zi_slice = zi[i, :, :]
20313 : * for n in xrange(n_samples):
20314 : */
20315 0 : __pyx_t_1 = __pyx_v_n_signals;
20316 0 : __pyx_t_2 = __pyx_t_1;
20317 0 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20318 0 : __pyx_v_i = __pyx_t_3;
20319 :
20320 : /* "scipy/signal/_sosfilt.pyx":44
20321 : * # the original version is still in the gil version below.
20322 : * for i in xrange(n_signals):
20323 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
20324 : * for n in xrange(n_samples):
20325 : *
20326 : */
20327 0 : __pyx_t_4.data = __pyx_v_zi.data;
20328 0 : __pyx_t_4.memview = __pyx_v_zi.memview;
20329 0 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
20330 : {
20331 0 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
20332 0 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
20333 0 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
20334 : }
20335 :
20336 0 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
20337 0 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
20338 0 : __pyx_t_4.suboffsets[0] = -1;
20339 :
20340 0 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
20341 0 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
20342 0 : __pyx_t_4.suboffsets[1] = -1;
20343 :
20344 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20345 0 : __pyx_v_zi_slice = __pyx_t_4;
20346 0 : __pyx_t_4.memview = NULL;
20347 0 : __pyx_t_4.data = NULL;
20348 :
20349 : /* "scipy/signal/_sosfilt.pyx":45
20350 : * for i in xrange(n_signals):
20351 : * zi_slice = zi[i, :, :]
20352 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
20353 : *
20354 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20355 : */
20356 0 : __pyx_t_5 = __pyx_v_n_samples;
20357 0 : __pyx_t_6 = __pyx_t_5;
20358 0 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
20359 0 : __pyx_v_n = __pyx_t_7;
20360 :
20361 : /* "scipy/signal/_sosfilt.pyx":47
20362 : * for n in xrange(n_samples):
20363 : *
20364 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
20365 : *
20366 : * for s in xrange(n_sections):
20367 : */
20368 0 : __pyx_t_8 = __pyx_v_i;
20369 0 : __pyx_t_9 = __pyx_v_n;
20370 0 : __pyx_v_x_cur = __Pyx_c_prod_float(__pyx_v_const_1, (*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
20371 :
20372 : /* "scipy/signal/_sosfilt.pyx":49
20373 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20374 : *
20375 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
20376 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20377 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20378 : */
20379 0 : __pyx_t_10 = __pyx_v_n_sections;
20380 0 : __pyx_t_11 = __pyx_t_10;
20381 0 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
20382 0 : __pyx_v_s = __pyx_t_12;
20383 :
20384 : /* "scipy/signal/_sosfilt.pyx":50
20385 : *
20386 : * for s in xrange(n_sections):
20387 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
20388 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20389 : * + zi_slice[s, 1])
20390 : */
20391 0 : __pyx_t_9 = __pyx_v_s;
20392 0 : __pyx_t_8 = 0;
20393 0 : __pyx_t_13 = __pyx_v_s;
20394 0 : __pyx_t_14 = 0;
20395 0 : __pyx_v_x_new = __Pyx_c_sum_float(__Pyx_c_prod_float((*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_cur), (*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
20396 :
20397 : /* "scipy/signal/_sosfilt.pyx":51
20398 : * for s in xrange(n_sections):
20399 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20400 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20401 : * + zi_slice[s, 1])
20402 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20403 : */
20404 0 : __pyx_t_14 = __pyx_v_s;
20405 0 : __pyx_t_13 = 1;
20406 0 : __pyx_t_8 = __pyx_v_s;
20407 0 : __pyx_t_9 = 4;
20408 :
20409 : /* "scipy/signal/_sosfilt.pyx":52
20410 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20411 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20412 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
20413 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20414 : * x_cur = x_new
20415 : */
20416 0 : __pyx_t_15 = __pyx_v_s;
20417 0 : __pyx_t_16 = 1;
20418 :
20419 : /* "scipy/signal/_sosfilt.pyx":51
20420 : * for s in xrange(n_sections):
20421 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20422 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20423 : * + zi_slice[s, 1])
20424 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20425 : */
20426 0 : __pyx_t_17 = __pyx_v_s;
20427 0 : __pyx_t_18 = 0;
20428 0 : *((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = __Pyx_c_sum_float(__Pyx_c_diff_float(__Pyx_c_prod_float((*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))), __pyx_v_x_cur), __Pyx_c_prod_float((*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))), __pyx_v_x_new)), (*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
20429 :
20430 : /* "scipy/signal/_sosfilt.pyx":53
20431 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20432 : * + zi_slice[s, 1])
20433 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
20434 : * x_cur = x_new
20435 : *
20436 : */
20437 0 : __pyx_t_16 = __pyx_v_s;
20438 0 : __pyx_t_15 = 2;
20439 0 : __pyx_t_9 = __pyx_v_s;
20440 0 : __pyx_t_8 = 5;
20441 0 : __pyx_t_13 = __pyx_v_s;
20442 0 : __pyx_t_14 = 1;
20443 0 : *((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = __Pyx_c_diff_float(__Pyx_c_prod_float((*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))), __pyx_v_x_cur), __Pyx_c_prod_float((*((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_new));
20444 :
20445 : /* "scipy/signal/_sosfilt.pyx":54
20446 : * + zi_slice[s, 1])
20447 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20448 : * x_cur = x_new # <<<<<<<<<<<<<<
20449 : *
20450 : * x[i, n] = x_cur
20451 : */
20452 0 : __pyx_v_x_cur = __pyx_v_x_new;
20453 : }
20454 :
20455 : /* "scipy/signal/_sosfilt.pyx":56
20456 : * x_cur = x_new
20457 : *
20458 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
20459 : *
20460 : *
20461 : */
20462 0 : __pyx_t_8 = __pyx_v_i;
20463 0 : __pyx_t_9 = __pyx_v_n;
20464 0 : *((__pyx_t_float_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_float_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
20465 : }
20466 : }
20467 :
20468 : /* "scipy/signal/_sosfilt.pyx":29
20469 : * @cython.boundscheck(False)
20470 : * @cython.wraparound(False)
20471 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
20472 : * DTYPE_floating_t [:, ::1] x,
20473 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20474 : */
20475 :
20476 : /* function exit code */
20477 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20478 0 : }
20479 :
20480 89 : static void __pyx_fuse_2__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
20481 89 : Py_ssize_t __pyx_v_n_signals;
20482 89 : Py_ssize_t __pyx_v_n_samples;
20483 89 : Py_ssize_t __pyx_v_n_sections;
20484 89 : Py_ssize_t __pyx_v_i;
20485 89 : Py_ssize_t __pyx_v_n;
20486 89 : Py_ssize_t __pyx_v_s;
20487 89 : double __pyx_v_x_new;
20488 89 : double __pyx_v_x_cur;
20489 89 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
20490 89 : double __pyx_v_const_1;
20491 89 : Py_ssize_t __pyx_t_1;
20492 89 : Py_ssize_t __pyx_t_2;
20493 89 : Py_ssize_t __pyx_t_3;
20494 89 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
20495 89 : Py_ssize_t __pyx_t_5;
20496 89 : Py_ssize_t __pyx_t_6;
20497 89 : Py_ssize_t __pyx_t_7;
20498 89 : Py_ssize_t __pyx_t_8;
20499 89 : Py_ssize_t __pyx_t_9;
20500 89 : Py_ssize_t __pyx_t_10;
20501 89 : Py_ssize_t __pyx_t_11;
20502 89 : Py_ssize_t __pyx_t_12;
20503 89 : Py_ssize_t __pyx_t_13;
20504 89 : Py_ssize_t __pyx_t_14;
20505 89 : Py_ssize_t __pyx_t_15;
20506 89 : Py_ssize_t __pyx_t_16;
20507 89 : Py_ssize_t __pyx_t_17;
20508 89 : Py_ssize_t __pyx_t_18;
20509 :
20510 : /* "scipy/signal/_sosfilt.pyx":33
20511 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20512 : * # Modifies x and zi in place
20513 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
20514 : * cdef Py_ssize_t n_samples = x.shape[1]
20515 : * cdef Py_ssize_t n_sections = sos.shape[0]
20516 : */
20517 89 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
20518 :
20519 : /* "scipy/signal/_sosfilt.pyx":34
20520 : * # Modifies x and zi in place
20521 : * cdef Py_ssize_t n_signals = x.shape[0]
20522 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
20523 : * cdef Py_ssize_t n_sections = sos.shape[0]
20524 : * cdef Py_ssize_t i, n, s
20525 : */
20526 89 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
20527 :
20528 : /* "scipy/signal/_sosfilt.pyx":35
20529 : * cdef Py_ssize_t n_signals = x.shape[0]
20530 : * cdef Py_ssize_t n_samples = x.shape[1]
20531 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
20532 : * cdef Py_ssize_t i, n, s
20533 : * cdef DTYPE_floating_t x_new, x_cur
20534 : */
20535 89 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
20536 :
20537 : /* "scipy/signal/_sosfilt.pyx":39
20538 : * cdef DTYPE_floating_t x_new, x_cur
20539 : * cdef DTYPE_floating_t[:, ::1] zi_slice
20540 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
20541 : *
20542 : * # jumping through a few memoryview hoops to reduce array lookups,
20543 : */
20544 89 : __pyx_v_const_1 = 1.0;
20545 :
20546 : /* "scipy/signal/_sosfilt.pyx":43
20547 : * # jumping through a few memoryview hoops to reduce array lookups,
20548 : * # the original version is still in the gil version below.
20549 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
20550 : * zi_slice = zi[i, :, :]
20551 : * for n in xrange(n_samples):
20552 : */
20553 89 : __pyx_t_1 = __pyx_v_n_signals;
20554 89 : __pyx_t_2 = __pyx_t_1;
20555 1404 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20556 1315 : __pyx_v_i = __pyx_t_3;
20557 :
20558 : /* "scipy/signal/_sosfilt.pyx":44
20559 : * # the original version is still in the gil version below.
20560 : * for i in xrange(n_signals):
20561 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
20562 : * for n in xrange(n_samples):
20563 : *
20564 : */
20565 1315 : __pyx_t_4.data = __pyx_v_zi.data;
20566 1315 : __pyx_t_4.memview = __pyx_v_zi.memview;
20567 1315 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
20568 : {
20569 1315 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
20570 1315 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
20571 1315 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
20572 : }
20573 :
20574 1315 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
20575 1315 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
20576 1315 : __pyx_t_4.suboffsets[0] = -1;
20577 :
20578 1315 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
20579 1315 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
20580 1315 : __pyx_t_4.suboffsets[1] = -1;
20581 :
20582 1315 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20583 1315 : __pyx_v_zi_slice = __pyx_t_4;
20584 1315 : __pyx_t_4.memview = NULL;
20585 1315 : __pyx_t_4.data = NULL;
20586 :
20587 : /* "scipy/signal/_sosfilt.pyx":45
20588 : * for i in xrange(n_signals):
20589 : * zi_slice = zi[i, :, :]
20590 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
20591 : *
20592 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20593 : */
20594 1315 : __pyx_t_5 = __pyx_v_n_samples;
20595 1315 : __pyx_t_6 = __pyx_t_5;
20596 67511 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
20597 66196 : __pyx_v_n = __pyx_t_7;
20598 :
20599 : /* "scipy/signal/_sosfilt.pyx":47
20600 : * for n in xrange(n_samples):
20601 : *
20602 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
20603 : *
20604 : * for s in xrange(n_sections):
20605 : */
20606 66196 : __pyx_t_8 = __pyx_v_i;
20607 66196 : __pyx_t_9 = __pyx_v_n;
20608 66196 : __pyx_v_x_cur = (__pyx_v_const_1 * (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
20609 :
20610 : /* "scipy/signal/_sosfilt.pyx":49
20611 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20612 : *
20613 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
20614 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20615 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20616 : */
20617 66196 : __pyx_t_10 = __pyx_v_n_sections;
20618 66196 : __pyx_t_11 = __pyx_t_10;
20619 226338 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
20620 160142 : __pyx_v_s = __pyx_t_12;
20621 :
20622 : /* "scipy/signal/_sosfilt.pyx":50
20623 : *
20624 : * for s in xrange(n_sections):
20625 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
20626 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20627 : * + zi_slice[s, 1])
20628 : */
20629 160142 : __pyx_t_9 = __pyx_v_s;
20630 160142 : __pyx_t_8 = 0;
20631 160142 : __pyx_t_13 = __pyx_v_s;
20632 160142 : __pyx_t_14 = 0;
20633 160142 : __pyx_v_x_new = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_cur) + (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
20634 :
20635 : /* "scipy/signal/_sosfilt.pyx":51
20636 : * for s in xrange(n_sections):
20637 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20638 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20639 : * + zi_slice[s, 1])
20640 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20641 : */
20642 160142 : __pyx_t_14 = __pyx_v_s;
20643 160142 : __pyx_t_13 = 1;
20644 160142 : __pyx_t_8 = __pyx_v_s;
20645 160142 : __pyx_t_9 = 4;
20646 :
20647 : /* "scipy/signal/_sosfilt.pyx":52
20648 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20649 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20650 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
20651 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20652 : * x_cur = x_new
20653 : */
20654 160142 : __pyx_t_15 = __pyx_v_s;
20655 160142 : __pyx_t_16 = 1;
20656 :
20657 : /* "scipy/signal/_sosfilt.pyx":51
20658 : * for s in xrange(n_sections):
20659 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20660 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20661 : * + zi_slice[s, 1])
20662 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20663 : */
20664 160142 : __pyx_t_17 = __pyx_v_s;
20665 160142 : __pyx_t_18 = 0;
20666 160142 : *((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = ((((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))) * __pyx_v_x_cur) - ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))) * __pyx_v_x_new)) + (*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
20667 :
20668 : /* "scipy/signal/_sosfilt.pyx":53
20669 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20670 : * + zi_slice[s, 1])
20671 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
20672 : * x_cur = x_new
20673 : *
20674 : */
20675 160142 : __pyx_t_16 = __pyx_v_s;
20676 160142 : __pyx_t_15 = 2;
20677 160142 : __pyx_t_9 = __pyx_v_s;
20678 160142 : __pyx_t_8 = 5;
20679 160142 : __pyx_t_13 = __pyx_v_s;
20680 160142 : __pyx_t_14 = 1;
20681 160142 : *((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = (((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))) * __pyx_v_x_cur) - ((*((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_new));
20682 :
20683 : /* "scipy/signal/_sosfilt.pyx":54
20684 : * + zi_slice[s, 1])
20685 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20686 : * x_cur = x_new # <<<<<<<<<<<<<<
20687 : *
20688 : * x[i, n] = x_cur
20689 : */
20690 160142 : __pyx_v_x_cur = __pyx_v_x_new;
20691 : }
20692 :
20693 : /* "scipy/signal/_sosfilt.pyx":56
20694 : * x_cur = x_new
20695 : *
20696 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
20697 : *
20698 : *
20699 : */
20700 66196 : __pyx_t_8 = __pyx_v_i;
20701 66196 : __pyx_t_9 = __pyx_v_n;
20702 66196 : *((double *) ( /* dim=1 */ ((char *) (((double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
20703 : }
20704 : }
20705 :
20706 : /* "scipy/signal/_sosfilt.pyx":29
20707 : * @cython.boundscheck(False)
20708 : * @cython.wraparound(False)
20709 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
20710 : * DTYPE_floating_t [:, ::1] x,
20711 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20712 : */
20713 :
20714 : /* function exit code */
20715 89 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20716 89 : }
20717 :
20718 28 : static void __pyx_fuse_3__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
20719 28 : Py_ssize_t __pyx_v_n_signals;
20720 28 : Py_ssize_t __pyx_v_n_samples;
20721 28 : Py_ssize_t __pyx_v_n_sections;
20722 28 : Py_ssize_t __pyx_v_i;
20723 28 : Py_ssize_t __pyx_v_n;
20724 28 : Py_ssize_t __pyx_v_s;
20725 28 : __pyx_t_double_complex __pyx_v_x_new;
20726 28 : __pyx_t_double_complex __pyx_v_x_cur;
20727 28 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
20728 28 : __pyx_t_double_complex __pyx_v_const_1;
20729 28 : Py_ssize_t __pyx_t_1;
20730 28 : Py_ssize_t __pyx_t_2;
20731 28 : Py_ssize_t __pyx_t_3;
20732 28 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
20733 28 : Py_ssize_t __pyx_t_5;
20734 28 : Py_ssize_t __pyx_t_6;
20735 28 : Py_ssize_t __pyx_t_7;
20736 28 : Py_ssize_t __pyx_t_8;
20737 28 : Py_ssize_t __pyx_t_9;
20738 28 : Py_ssize_t __pyx_t_10;
20739 28 : Py_ssize_t __pyx_t_11;
20740 28 : Py_ssize_t __pyx_t_12;
20741 28 : Py_ssize_t __pyx_t_13;
20742 28 : Py_ssize_t __pyx_t_14;
20743 28 : Py_ssize_t __pyx_t_15;
20744 28 : Py_ssize_t __pyx_t_16;
20745 28 : Py_ssize_t __pyx_t_17;
20746 28 : Py_ssize_t __pyx_t_18;
20747 :
20748 : /* "scipy/signal/_sosfilt.pyx":33
20749 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20750 : * # Modifies x and zi in place
20751 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
20752 : * cdef Py_ssize_t n_samples = x.shape[1]
20753 : * cdef Py_ssize_t n_sections = sos.shape[0]
20754 : */
20755 28 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
20756 :
20757 : /* "scipy/signal/_sosfilt.pyx":34
20758 : * # Modifies x and zi in place
20759 : * cdef Py_ssize_t n_signals = x.shape[0]
20760 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
20761 : * cdef Py_ssize_t n_sections = sos.shape[0]
20762 : * cdef Py_ssize_t i, n, s
20763 : */
20764 28 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
20765 :
20766 : /* "scipy/signal/_sosfilt.pyx":35
20767 : * cdef Py_ssize_t n_signals = x.shape[0]
20768 : * cdef Py_ssize_t n_samples = x.shape[1]
20769 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
20770 : * cdef Py_ssize_t i, n, s
20771 : * cdef DTYPE_floating_t x_new, x_cur
20772 : */
20773 28 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
20774 :
20775 : /* "scipy/signal/_sosfilt.pyx":39
20776 : * cdef DTYPE_floating_t x_new, x_cur
20777 : * cdef DTYPE_floating_t[:, ::1] zi_slice
20778 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
20779 : *
20780 : * # jumping through a few memoryview hoops to reduce array lookups,
20781 : */
20782 28 : __pyx_v_const_1 = __pyx_t_double_complex_from_parts(1.0, 0);
20783 :
20784 : /* "scipy/signal/_sosfilt.pyx":43
20785 : * # jumping through a few memoryview hoops to reduce array lookups,
20786 : * # the original version is still in the gil version below.
20787 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
20788 : * zi_slice = zi[i, :, :]
20789 : * for n in xrange(n_samples):
20790 : */
20791 28 : __pyx_t_1 = __pyx_v_n_signals;
20792 28 : __pyx_t_2 = __pyx_t_1;
20793 106 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
20794 78 : __pyx_v_i = __pyx_t_3;
20795 :
20796 : /* "scipy/signal/_sosfilt.pyx":44
20797 : * # the original version is still in the gil version below.
20798 : * for i in xrange(n_signals):
20799 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
20800 : * for n in xrange(n_samples):
20801 : *
20802 : */
20803 78 : __pyx_t_4.data = __pyx_v_zi.data;
20804 78 : __pyx_t_4.memview = __pyx_v_zi.memview;
20805 78 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
20806 : {
20807 78 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
20808 78 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
20809 78 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
20810 : }
20811 :
20812 78 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
20813 78 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
20814 78 : __pyx_t_4.suboffsets[0] = -1;
20815 :
20816 78 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
20817 78 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
20818 78 : __pyx_t_4.suboffsets[1] = -1;
20819 :
20820 78 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20821 78 : __pyx_v_zi_slice = __pyx_t_4;
20822 78 : __pyx_t_4.memview = NULL;
20823 78 : __pyx_t_4.data = NULL;
20824 :
20825 : /* "scipy/signal/_sosfilt.pyx":45
20826 : * for i in xrange(n_signals):
20827 : * zi_slice = zi[i, :, :]
20828 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
20829 : *
20830 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20831 : */
20832 78 : __pyx_t_5 = __pyx_v_n_samples;
20833 78 : __pyx_t_6 = __pyx_t_5;
20834 982 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
20835 904 : __pyx_v_n = __pyx_t_7;
20836 :
20837 : /* "scipy/signal/_sosfilt.pyx":47
20838 : * for n in xrange(n_samples):
20839 : *
20840 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
20841 : *
20842 : * for s in xrange(n_sections):
20843 : */
20844 904 : __pyx_t_8 = __pyx_v_i;
20845 904 : __pyx_t_9 = __pyx_v_n;
20846 904 : __pyx_v_x_cur = __Pyx_c_prod_double(__pyx_v_const_1, (*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
20847 :
20848 : /* "scipy/signal/_sosfilt.pyx":49
20849 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
20850 : *
20851 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
20852 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20853 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20854 : */
20855 904 : __pyx_t_10 = __pyx_v_n_sections;
20856 904 : __pyx_t_11 = __pyx_t_10;
20857 3472 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
20858 2568 : __pyx_v_s = __pyx_t_12;
20859 :
20860 : /* "scipy/signal/_sosfilt.pyx":50
20861 : *
20862 : * for s in xrange(n_sections):
20863 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
20864 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20865 : * + zi_slice[s, 1])
20866 : */
20867 2568 : __pyx_t_9 = __pyx_v_s;
20868 2568 : __pyx_t_8 = 0;
20869 2568 : __pyx_t_13 = __pyx_v_s;
20870 2568 : __pyx_t_14 = 0;
20871 2568 : __pyx_v_x_new = __Pyx_c_sum_double(__Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_cur), (*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
20872 :
20873 : /* "scipy/signal/_sosfilt.pyx":51
20874 : * for s in xrange(n_sections):
20875 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20876 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20877 : * + zi_slice[s, 1])
20878 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20879 : */
20880 2568 : __pyx_t_14 = __pyx_v_s;
20881 2568 : __pyx_t_13 = 1;
20882 2568 : __pyx_t_8 = __pyx_v_s;
20883 2568 : __pyx_t_9 = 4;
20884 :
20885 : /* "scipy/signal/_sosfilt.pyx":52
20886 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20887 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20888 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
20889 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20890 : * x_cur = x_new
20891 : */
20892 2568 : __pyx_t_15 = __pyx_v_s;
20893 2568 : __pyx_t_16 = 1;
20894 :
20895 : /* "scipy/signal/_sosfilt.pyx":51
20896 : * for s in xrange(n_sections):
20897 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
20898 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
20899 : * + zi_slice[s, 1])
20900 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20901 : */
20902 2568 : __pyx_t_17 = __pyx_v_s;
20903 2568 : __pyx_t_18 = 0;
20904 2568 : *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = __Pyx_c_sum_double(__Pyx_c_diff_double(__Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))), __pyx_v_x_cur), __Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))), __pyx_v_x_new)), (*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
20905 :
20906 : /* "scipy/signal/_sosfilt.pyx":53
20907 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
20908 : * + zi_slice[s, 1])
20909 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
20910 : * x_cur = x_new
20911 : *
20912 : */
20913 2568 : __pyx_t_16 = __pyx_v_s;
20914 2568 : __pyx_t_15 = 2;
20915 2568 : __pyx_t_9 = __pyx_v_s;
20916 2568 : __pyx_t_8 = 5;
20917 2568 : __pyx_t_13 = __pyx_v_s;
20918 2568 : __pyx_t_14 = 1;
20919 2568 : *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = __Pyx_c_diff_double(__Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))), __pyx_v_x_cur), __Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_new));
20920 :
20921 : /* "scipy/signal/_sosfilt.pyx":54
20922 : * + zi_slice[s, 1])
20923 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
20924 : * x_cur = x_new # <<<<<<<<<<<<<<
20925 : *
20926 : * x[i, n] = x_cur
20927 : */
20928 2568 : __pyx_v_x_cur = __pyx_v_x_new;
20929 : }
20930 :
20931 : /* "scipy/signal/_sosfilt.pyx":56
20932 : * x_cur = x_new
20933 : *
20934 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
20935 : *
20936 : *
20937 : */
20938 904 : __pyx_t_8 = __pyx_v_i;
20939 904 : __pyx_t_9 = __pyx_v_n;
20940 904 : *((__pyx_t_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
20941 : }
20942 : }
20943 :
20944 : /* "scipy/signal/_sosfilt.pyx":29
20945 : * @cython.boundscheck(False)
20946 : * @cython.wraparound(False)
20947 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
20948 : * DTYPE_floating_t [:, ::1] x,
20949 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20950 : */
20951 :
20952 : /* function exit code */
20953 28 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
20954 28 : }
20955 :
20956 0 : static void __pyx_fuse_4__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
20957 0 : Py_ssize_t __pyx_v_n_signals;
20958 0 : Py_ssize_t __pyx_v_n_samples;
20959 0 : Py_ssize_t __pyx_v_n_sections;
20960 0 : Py_ssize_t __pyx_v_i;
20961 0 : Py_ssize_t __pyx_v_n;
20962 0 : Py_ssize_t __pyx_v_s;
20963 0 : long double __pyx_v_x_new;
20964 0 : long double __pyx_v_x_cur;
20965 0 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
20966 0 : long double __pyx_v_const_1;
20967 0 : Py_ssize_t __pyx_t_1;
20968 0 : Py_ssize_t __pyx_t_2;
20969 0 : Py_ssize_t __pyx_t_3;
20970 0 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
20971 0 : Py_ssize_t __pyx_t_5;
20972 0 : Py_ssize_t __pyx_t_6;
20973 0 : Py_ssize_t __pyx_t_7;
20974 0 : Py_ssize_t __pyx_t_8;
20975 0 : Py_ssize_t __pyx_t_9;
20976 0 : Py_ssize_t __pyx_t_10;
20977 0 : Py_ssize_t __pyx_t_11;
20978 0 : Py_ssize_t __pyx_t_12;
20979 0 : Py_ssize_t __pyx_t_13;
20980 0 : Py_ssize_t __pyx_t_14;
20981 0 : Py_ssize_t __pyx_t_15;
20982 0 : Py_ssize_t __pyx_t_16;
20983 0 : Py_ssize_t __pyx_t_17;
20984 0 : Py_ssize_t __pyx_t_18;
20985 :
20986 : /* "scipy/signal/_sosfilt.pyx":33
20987 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
20988 : * # Modifies x and zi in place
20989 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
20990 : * cdef Py_ssize_t n_samples = x.shape[1]
20991 : * cdef Py_ssize_t n_sections = sos.shape[0]
20992 : */
20993 0 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
20994 :
20995 : /* "scipy/signal/_sosfilt.pyx":34
20996 : * # Modifies x and zi in place
20997 : * cdef Py_ssize_t n_signals = x.shape[0]
20998 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
20999 : * cdef Py_ssize_t n_sections = sos.shape[0]
21000 : * cdef Py_ssize_t i, n, s
21001 : */
21002 0 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
21003 :
21004 : /* "scipy/signal/_sosfilt.pyx":35
21005 : * cdef Py_ssize_t n_signals = x.shape[0]
21006 : * cdef Py_ssize_t n_samples = x.shape[1]
21007 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
21008 : * cdef Py_ssize_t i, n, s
21009 : * cdef DTYPE_floating_t x_new, x_cur
21010 : */
21011 0 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
21012 :
21013 : /* "scipy/signal/_sosfilt.pyx":39
21014 : * cdef DTYPE_floating_t x_new, x_cur
21015 : * cdef DTYPE_floating_t[:, ::1] zi_slice
21016 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
21017 : *
21018 : * # jumping through a few memoryview hoops to reduce array lookups,
21019 : */
21020 0 : __pyx_v_const_1 = 1.0;
21021 :
21022 : /* "scipy/signal/_sosfilt.pyx":43
21023 : * # jumping through a few memoryview hoops to reduce array lookups,
21024 : * # the original version is still in the gil version below.
21025 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
21026 : * zi_slice = zi[i, :, :]
21027 : * for n in xrange(n_samples):
21028 : */
21029 0 : __pyx_t_1 = __pyx_v_n_signals;
21030 0 : __pyx_t_2 = __pyx_t_1;
21031 0 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
21032 0 : __pyx_v_i = __pyx_t_3;
21033 :
21034 : /* "scipy/signal/_sosfilt.pyx":44
21035 : * # the original version is still in the gil version below.
21036 : * for i in xrange(n_signals):
21037 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
21038 : * for n in xrange(n_samples):
21039 : *
21040 : */
21041 0 : __pyx_t_4.data = __pyx_v_zi.data;
21042 0 : __pyx_t_4.memview = __pyx_v_zi.memview;
21043 0 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
21044 : {
21045 0 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
21046 0 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
21047 0 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
21048 : }
21049 :
21050 0 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
21051 0 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
21052 0 : __pyx_t_4.suboffsets[0] = -1;
21053 :
21054 0 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
21055 0 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
21056 0 : __pyx_t_4.suboffsets[1] = -1;
21057 :
21058 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
21059 0 : __pyx_v_zi_slice = __pyx_t_4;
21060 0 : __pyx_t_4.memview = NULL;
21061 0 : __pyx_t_4.data = NULL;
21062 :
21063 : /* "scipy/signal/_sosfilt.pyx":45
21064 : * for i in xrange(n_signals):
21065 : * zi_slice = zi[i, :, :]
21066 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
21067 : *
21068 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
21069 : */
21070 0 : __pyx_t_5 = __pyx_v_n_samples;
21071 0 : __pyx_t_6 = __pyx_t_5;
21072 0 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
21073 0 : __pyx_v_n = __pyx_t_7;
21074 :
21075 : /* "scipy/signal/_sosfilt.pyx":47
21076 : * for n in xrange(n_samples):
21077 : *
21078 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
21079 : *
21080 : * for s in xrange(n_sections):
21081 : */
21082 0 : __pyx_t_8 = __pyx_v_i;
21083 0 : __pyx_t_9 = __pyx_v_n;
21084 0 : __pyx_v_x_cur = (__pyx_v_const_1 * (*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
21085 :
21086 : /* "scipy/signal/_sosfilt.pyx":49
21087 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
21088 : *
21089 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
21090 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21091 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21092 : */
21093 0 : __pyx_t_10 = __pyx_v_n_sections;
21094 0 : __pyx_t_11 = __pyx_t_10;
21095 0 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
21096 0 : __pyx_v_s = __pyx_t_12;
21097 :
21098 : /* "scipy/signal/_sosfilt.pyx":50
21099 : *
21100 : * for s in xrange(n_sections):
21101 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
21102 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21103 : * + zi_slice[s, 1])
21104 : */
21105 0 : __pyx_t_9 = __pyx_v_s;
21106 0 : __pyx_t_8 = 0;
21107 0 : __pyx_t_13 = __pyx_v_s;
21108 0 : __pyx_t_14 = 0;
21109 0 : __pyx_v_x_new = (((*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_cur) + (*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
21110 :
21111 : /* "scipy/signal/_sosfilt.pyx":51
21112 : * for s in xrange(n_sections):
21113 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21114 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
21115 : * + zi_slice[s, 1])
21116 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21117 : */
21118 0 : __pyx_t_14 = __pyx_v_s;
21119 0 : __pyx_t_13 = 1;
21120 0 : __pyx_t_8 = __pyx_v_s;
21121 0 : __pyx_t_9 = 4;
21122 :
21123 : /* "scipy/signal/_sosfilt.pyx":52
21124 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21125 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21126 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
21127 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21128 : * x_cur = x_new
21129 : */
21130 0 : __pyx_t_15 = __pyx_v_s;
21131 0 : __pyx_t_16 = 1;
21132 :
21133 : /* "scipy/signal/_sosfilt.pyx":51
21134 : * for s in xrange(n_sections):
21135 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21136 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
21137 : * + zi_slice[s, 1])
21138 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21139 : */
21140 0 : __pyx_t_17 = __pyx_v_s;
21141 0 : __pyx_t_18 = 0;
21142 0 : *((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = ((((*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))) * __pyx_v_x_cur) - ((*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))) * __pyx_v_x_new)) + (*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
21143 :
21144 : /* "scipy/signal/_sosfilt.pyx":53
21145 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21146 : * + zi_slice[s, 1])
21147 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
21148 : * x_cur = x_new
21149 : *
21150 : */
21151 0 : __pyx_t_16 = __pyx_v_s;
21152 0 : __pyx_t_15 = 2;
21153 0 : __pyx_t_9 = __pyx_v_s;
21154 0 : __pyx_t_8 = 5;
21155 0 : __pyx_t_13 = __pyx_v_s;
21156 0 : __pyx_t_14 = 1;
21157 0 : *((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = (((*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))) * __pyx_v_x_cur) - ((*((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))) * __pyx_v_x_new));
21158 :
21159 : /* "scipy/signal/_sosfilt.pyx":54
21160 : * + zi_slice[s, 1])
21161 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21162 : * x_cur = x_new # <<<<<<<<<<<<<<
21163 : *
21164 : * x[i, n] = x_cur
21165 : */
21166 0 : __pyx_v_x_cur = __pyx_v_x_new;
21167 : }
21168 :
21169 : /* "scipy/signal/_sosfilt.pyx":56
21170 : * x_cur = x_new
21171 : *
21172 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
21173 : *
21174 : *
21175 : */
21176 0 : __pyx_t_8 = __pyx_v_i;
21177 0 : __pyx_t_9 = __pyx_v_n;
21178 0 : *((long double *) ( /* dim=1 */ ((char *) (((long double *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
21179 : }
21180 : }
21181 :
21182 : /* "scipy/signal/_sosfilt.pyx":29
21183 : * @cython.boundscheck(False)
21184 : * @cython.wraparound(False)
21185 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
21186 : * DTYPE_floating_t [:, ::1] x,
21187 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
21188 : */
21189 :
21190 : /* function exit code */
21191 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
21192 0 : }
21193 :
21194 0 : static void __pyx_fuse_5__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
21195 0 : Py_ssize_t __pyx_v_n_signals;
21196 0 : Py_ssize_t __pyx_v_n_samples;
21197 0 : Py_ssize_t __pyx_v_n_sections;
21198 0 : Py_ssize_t __pyx_v_i;
21199 0 : Py_ssize_t __pyx_v_n;
21200 0 : Py_ssize_t __pyx_v_s;
21201 0 : __pyx_t_long_double_complex __pyx_v_x_new;
21202 0 : __pyx_t_long_double_complex __pyx_v_x_cur;
21203 0 : __Pyx_memviewslice __pyx_v_zi_slice = { 0, 0, { 0 }, { 0 }, { 0 } };
21204 0 : __pyx_t_long_double_complex __pyx_v_const_1;
21205 0 : Py_ssize_t __pyx_t_1;
21206 0 : Py_ssize_t __pyx_t_2;
21207 0 : Py_ssize_t __pyx_t_3;
21208 0 : __Pyx_memviewslice __pyx_t_4 = { 0, 0, { 0 }, { 0 }, { 0 } };
21209 0 : Py_ssize_t __pyx_t_5;
21210 0 : Py_ssize_t __pyx_t_6;
21211 0 : Py_ssize_t __pyx_t_7;
21212 0 : Py_ssize_t __pyx_t_8;
21213 0 : Py_ssize_t __pyx_t_9;
21214 0 : Py_ssize_t __pyx_t_10;
21215 0 : Py_ssize_t __pyx_t_11;
21216 0 : Py_ssize_t __pyx_t_12;
21217 0 : Py_ssize_t __pyx_t_13;
21218 0 : Py_ssize_t __pyx_t_14;
21219 0 : Py_ssize_t __pyx_t_15;
21220 0 : Py_ssize_t __pyx_t_16;
21221 0 : Py_ssize_t __pyx_t_17;
21222 0 : Py_ssize_t __pyx_t_18;
21223 :
21224 : /* "scipy/signal/_sosfilt.pyx":33
21225 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
21226 : * # Modifies x and zi in place
21227 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
21228 : * cdef Py_ssize_t n_samples = x.shape[1]
21229 : * cdef Py_ssize_t n_sections = sos.shape[0]
21230 : */
21231 0 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
21232 :
21233 : /* "scipy/signal/_sosfilt.pyx":34
21234 : * # Modifies x and zi in place
21235 : * cdef Py_ssize_t n_signals = x.shape[0]
21236 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
21237 : * cdef Py_ssize_t n_sections = sos.shape[0]
21238 : * cdef Py_ssize_t i, n, s
21239 : */
21240 0 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
21241 :
21242 : /* "scipy/signal/_sosfilt.pyx":35
21243 : * cdef Py_ssize_t n_signals = x.shape[0]
21244 : * cdef Py_ssize_t n_samples = x.shape[1]
21245 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
21246 : * cdef Py_ssize_t i, n, s
21247 : * cdef DTYPE_floating_t x_new, x_cur
21248 : */
21249 0 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
21250 :
21251 : /* "scipy/signal/_sosfilt.pyx":39
21252 : * cdef DTYPE_floating_t x_new, x_cur
21253 : * cdef DTYPE_floating_t[:, ::1] zi_slice
21254 : * cdef DTYPE_floating_t const_1 = 1.0 # <<<<<<<<<<<<<<
21255 : *
21256 : * # jumping through a few memoryview hoops to reduce array lookups,
21257 : */
21258 0 : __pyx_v_const_1 = __pyx_t_long_double_complex_from_parts(1.0, 0);
21259 :
21260 : /* "scipy/signal/_sosfilt.pyx":43
21261 : * # jumping through a few memoryview hoops to reduce array lookups,
21262 : * # the original version is still in the gil version below.
21263 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
21264 : * zi_slice = zi[i, :, :]
21265 : * for n in xrange(n_samples):
21266 : */
21267 0 : __pyx_t_1 = __pyx_v_n_signals;
21268 0 : __pyx_t_2 = __pyx_t_1;
21269 0 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
21270 0 : __pyx_v_i = __pyx_t_3;
21271 :
21272 : /* "scipy/signal/_sosfilt.pyx":44
21273 : * # the original version is still in the gil version below.
21274 : * for i in xrange(n_signals):
21275 : * zi_slice = zi[i, :, :] # <<<<<<<<<<<<<<
21276 : * for n in xrange(n_samples):
21277 : *
21278 : */
21279 0 : __pyx_t_4.data = __pyx_v_zi.data;
21280 0 : __pyx_t_4.memview = __pyx_v_zi.memview;
21281 0 : __PYX_INC_MEMVIEW(&__pyx_t_4, 0);
21282 : {
21283 0 : Py_ssize_t __pyx_tmp_idx = __pyx_v_i;
21284 0 : Py_ssize_t __pyx_tmp_stride = __pyx_v_zi.strides[0];
21285 0 : __pyx_t_4.data += __pyx_tmp_idx * __pyx_tmp_stride;
21286 : }
21287 :
21288 0 : __pyx_t_4.shape[0] = __pyx_v_zi.shape[1];
21289 0 : __pyx_t_4.strides[0] = __pyx_v_zi.strides[1];
21290 0 : __pyx_t_4.suboffsets[0] = -1;
21291 :
21292 0 : __pyx_t_4.shape[1] = __pyx_v_zi.shape[2];
21293 0 : __pyx_t_4.strides[1] = __pyx_v_zi.strides[2];
21294 0 : __pyx_t_4.suboffsets[1] = -1;
21295 :
21296 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
21297 0 : __pyx_v_zi_slice = __pyx_t_4;
21298 0 : __pyx_t_4.memview = NULL;
21299 0 : __pyx_t_4.data = NULL;
21300 :
21301 : /* "scipy/signal/_sosfilt.pyx":45
21302 : * for i in xrange(n_signals):
21303 : * zi_slice = zi[i, :, :]
21304 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
21305 : *
21306 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
21307 : */
21308 0 : __pyx_t_5 = __pyx_v_n_samples;
21309 0 : __pyx_t_6 = __pyx_t_5;
21310 0 : for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
21311 0 : __pyx_v_n = __pyx_t_7;
21312 :
21313 : /* "scipy/signal/_sosfilt.pyx":47
21314 : * for n in xrange(n_samples):
21315 : *
21316 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy # <<<<<<<<<<<<<<
21317 : *
21318 : * for s in xrange(n_sections):
21319 : */
21320 0 : __pyx_t_8 = __pyx_v_i;
21321 0 : __pyx_t_9 = __pyx_v_n;
21322 0 : __pyx_v_x_cur = __Pyx_c_prod_long__double(__pyx_v_const_1, (*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) ))));
21323 :
21324 : /* "scipy/signal/_sosfilt.pyx":49
21325 : * x_cur = const_1 * x[i, n] # make sure x_cur is a copy
21326 : *
21327 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
21328 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21329 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21330 : */
21331 0 : __pyx_t_10 = __pyx_v_n_sections;
21332 0 : __pyx_t_11 = __pyx_t_10;
21333 0 : for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
21334 0 : __pyx_v_s = __pyx_t_12;
21335 :
21336 : /* "scipy/signal/_sosfilt.pyx":50
21337 : *
21338 : * for s in xrange(n_sections):
21339 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0] # <<<<<<<<<<<<<<
21340 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21341 : * + zi_slice[s, 1])
21342 : */
21343 0 : __pyx_t_9 = __pyx_v_s;
21344 0 : __pyx_t_8 = 0;
21345 0 : __pyx_t_13 = __pyx_v_s;
21346 0 : __pyx_t_14 = 0;
21347 0 : __pyx_v_x_new = __Pyx_c_sum_long__double(__Pyx_c_prod_long__double((*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_cur), (*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) ))));
21348 :
21349 : /* "scipy/signal/_sosfilt.pyx":51
21350 : * for s in xrange(n_sections):
21351 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21352 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
21353 : * + zi_slice[s, 1])
21354 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21355 : */
21356 0 : __pyx_t_14 = __pyx_v_s;
21357 0 : __pyx_t_13 = 1;
21358 0 : __pyx_t_8 = __pyx_v_s;
21359 0 : __pyx_t_9 = 4;
21360 :
21361 : /* "scipy/signal/_sosfilt.pyx":52
21362 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21363 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21364 : * + zi_slice[s, 1]) # <<<<<<<<<<<<<<
21365 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21366 : * x_cur = x_new
21367 : */
21368 0 : __pyx_t_15 = __pyx_v_s;
21369 0 : __pyx_t_16 = 1;
21370 :
21371 : /* "scipy/signal/_sosfilt.pyx":51
21372 : * for s in xrange(n_sections):
21373 : * x_new = sos[s, 0] * x_cur + zi_slice[s, 0]
21374 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new # <<<<<<<<<<<<<<
21375 : * + zi_slice[s, 1])
21376 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21377 : */
21378 0 : __pyx_t_17 = __pyx_v_s;
21379 0 : __pyx_t_18 = 0;
21380 0 : *((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_17 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_18)) )) = __Pyx_c_sum_long__double(__Pyx_c_diff_long__double(__Pyx_c_prod_long__double((*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_13)) ))), __pyx_v_x_cur), __Pyx_c_prod_long__double((*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_8 * __pyx_v_sos.strides[0]) )) + __pyx_t_9)) ))), __pyx_v_x_new)), (*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_15 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_16)) ))));
21381 :
21382 : /* "scipy/signal/_sosfilt.pyx":53
21383 : * zi_slice[s, 0] = (sos[s, 1] * x_cur - sos[s, 4] * x_new
21384 : * + zi_slice[s, 1])
21385 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new # <<<<<<<<<<<<<<
21386 : * x_cur = x_new
21387 : *
21388 : */
21389 0 : __pyx_t_16 = __pyx_v_s;
21390 0 : __pyx_t_15 = 2;
21391 0 : __pyx_t_9 = __pyx_v_s;
21392 0 : __pyx_t_8 = 5;
21393 0 : __pyx_t_13 = __pyx_v_s;
21394 0 : __pyx_t_14 = 1;
21395 0 : *((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_zi_slice.data + __pyx_t_13 * __pyx_v_zi_slice.strides[0]) )) + __pyx_t_14)) )) = __Pyx_c_diff_long__double(__Pyx_c_prod_long__double((*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_16 * __pyx_v_sos.strides[0]) )) + __pyx_t_15)) ))), __pyx_v_x_cur), __Pyx_c_prod_long__double((*((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_9 * __pyx_v_sos.strides[0]) )) + __pyx_t_8)) ))), __pyx_v_x_new));
21396 :
21397 : /* "scipy/signal/_sosfilt.pyx":54
21398 : * + zi_slice[s, 1])
21399 : * zi_slice[s, 1] = sos[s, 2] * x_cur - sos[s, 5] * x_new
21400 : * x_cur = x_new # <<<<<<<<<<<<<<
21401 : *
21402 : * x[i, n] = x_cur
21403 : */
21404 0 : __pyx_v_x_cur = __pyx_v_x_new;
21405 : }
21406 :
21407 : /* "scipy/signal/_sosfilt.pyx":56
21408 : * x_cur = x_new
21409 : *
21410 : * x[i, n] = x_cur # <<<<<<<<<<<<<<
21411 : *
21412 : *
21413 : */
21414 0 : __pyx_t_8 = __pyx_v_i;
21415 0 : __pyx_t_9 = __pyx_v_n;
21416 0 : *((__pyx_t_long_double_complex *) ( /* dim=1 */ ((char *) (((__pyx_t_long_double_complex *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_8 * __pyx_v_x.strides[0]) )) + __pyx_t_9)) )) = __pyx_v_x_cur;
21417 : }
21418 : }
21419 :
21420 : /* "scipy/signal/_sosfilt.pyx":29
21421 : * @cython.boundscheck(False)
21422 : * @cython.wraparound(False)
21423 : * cdef void _sosfilt_float(DTYPE_floating_t [:, ::1] sos, # <<<<<<<<<<<<<<
21424 : * DTYPE_floating_t [:, ::1] x,
21425 : * DTYPE_floating_t [:, :, ::1] zi) noexcept nogil:
21426 : */
21427 :
21428 : /* function exit code */
21429 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi_slice, 0);
21430 0 : }
21431 :
21432 : /* "scipy/signal/_sosfilt.pyx":59
21433 : *
21434 : *
21435 : * @cython.cdivision(True) # <<<<<<<<<<<<<<
21436 : * @cython.boundscheck(False)
21437 : * @cython.wraparound(False)
21438 : */
21439 :
21440 : /* Python wrapper */
21441 : static PyObject *__pyx_pw_5scipy_6signal_8_sosfilt_1_sosfilt_object(PyObject *__pyx_self,
21442 : #if CYTHON_METH_FASTCALL
21443 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
21444 : #else
21445 : PyObject *__pyx_args, PyObject *__pyx_kwds
21446 : #endif
21447 : ); /*proto*/
21448 : static PyMethodDef __pyx_mdef_5scipy_6signal_8_sosfilt_1_sosfilt_object = {"_sosfilt_object", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5scipy_6signal_8_sosfilt_1_sosfilt_object, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0};
21449 1 : static PyObject *__pyx_pw_5scipy_6signal_8_sosfilt_1_sosfilt_object(PyObject *__pyx_self,
21450 : #if CYTHON_METH_FASTCALL
21451 : PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds
21452 : #else
21453 : PyObject *__pyx_args, PyObject *__pyx_kwds
21454 : #endif
21455 : ) {
21456 1 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
21457 1 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
21458 1 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
21459 : #if !CYTHON_METH_FASTCALL
21460 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
21461 : #endif
21462 1 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
21463 1 : PyObject* values[3] = {0,0,0};
21464 1 : int __pyx_lineno = 0;
21465 1 : const char *__pyx_filename = NULL;
21466 1 : int __pyx_clineno = 0;
21467 1 : PyObject *__pyx_r = 0;
21468 : __Pyx_RefNannyDeclarations
21469 1 : __Pyx_RefNannySetupContext("_sosfilt_object (wrapper)", 0);
21470 : #if !CYTHON_METH_FASTCALL
21471 : #if CYTHON_ASSUME_SAFE_MACROS
21472 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
21473 : #else
21474 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
21475 : #endif
21476 : #endif
21477 1 : __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs);
21478 : {
21479 1 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
21480 1 : if (__pyx_kwds) {
21481 0 : Py_ssize_t kw_args;
21482 0 : switch (__pyx_nargs) {
21483 0 : case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
21484 0 : CYTHON_FALLTHROUGH;
21485 0 : case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
21486 0 : CYTHON_FALLTHROUGH;
21487 0 : case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
21488 0 : CYTHON_FALLTHROUGH;
21489 0 : case 0: break;
21490 0 : default: goto __pyx_L5_argtuple_error;
21491 : }
21492 0 : kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds);
21493 0 : switch (__pyx_nargs) {
21494 0 : case 0:
21495 0 : if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
21496 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[0]);
21497 0 : kw_args--;
21498 : }
21499 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 59, __pyx_L3_error)
21500 0 : else goto __pyx_L5_argtuple_error;
21501 0 : CYTHON_FALLTHROUGH;
21502 : case 1:
21503 0 : if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
21504 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[1]);
21505 0 : kw_args--;
21506 : }
21507 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 59, __pyx_L3_error)
21508 : else {
21509 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt_object", 1, 3, 3, 1); __PYX_ERR(0, 59, __pyx_L3_error)
21510 : }
21511 0 : CYTHON_FALLTHROUGH;
21512 : case 2:
21513 0 : if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
21514 0 : (void)__Pyx_Arg_NewRef_FASTCALL(values[2]);
21515 0 : kw_args--;
21516 : }
21517 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 59, __pyx_L3_error)
21518 : else {
21519 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt_object", 1, 3, 3, 2); __PYX_ERR(0, 59, __pyx_L3_error)
21520 : }
21521 : }
21522 0 : if (unlikely(kw_args > 0)) {
21523 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
21524 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt_object") < 0)) __PYX_ERR(0, 59, __pyx_L3_error)
21525 : }
21526 1 : } else if (unlikely(__pyx_nargs != 3)) {
21527 0 : goto __pyx_L5_argtuple_error;
21528 : } else {
21529 1 : values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0);
21530 1 : values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1);
21531 1 : values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2);
21532 : }
21533 1 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 62, __pyx_L3_error)
21534 1 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 63, __pyx_L3_error)
21535 1 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 64, __pyx_L3_error)
21536 : }
21537 1 : goto __pyx_L6_skip;
21538 0 : __pyx_L5_argtuple_error:;
21539 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt_object", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 59, __pyx_L3_error)
21540 1 : __pyx_L6_skip:;
21541 1 : goto __pyx_L4_argument_unpacking_done;
21542 0 : __pyx_L3_error:;
21543 : {
21544 0 : Py_ssize_t __pyx_temp;
21545 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
21546 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
21547 : }
21548 : }
21549 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
21550 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
21551 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
21552 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
21553 0 : __Pyx_RefNannyFinishContext();
21554 0 : return NULL;
21555 1 : __pyx_L4_argument_unpacking_done:;
21556 1 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt__sosfilt_object(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
21557 :
21558 : /* function exit code */
21559 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
21560 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
21561 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
21562 : {
21563 1 : Py_ssize_t __pyx_temp;
21564 1 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
21565 : __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]);
21566 : }
21567 : }
21568 : __Pyx_RefNannyFinishContext();
21569 : return __pyx_r;
21570 : }
21571 :
21572 1 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt__sosfilt_object(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
21573 1 : Py_ssize_t __pyx_v_n_signals;
21574 1 : Py_ssize_t __pyx_v_n_samples;
21575 1 : Py_ssize_t __pyx_v_n_sections;
21576 1 : Py_ssize_t __pyx_v_i;
21577 1 : Py_ssize_t __pyx_v_n;
21578 1 : Py_ssize_t __pyx_v_s;
21579 1 : PyObject *__pyx_v_x_n = 0;
21580 1 : PyObject *__pyx_r = NULL;
21581 : __Pyx_RefNannyDeclarations
21582 1 : Py_ssize_t __pyx_t_1;
21583 1 : Py_ssize_t __pyx_t_2;
21584 1 : Py_ssize_t __pyx_t_3;
21585 1 : Py_ssize_t __pyx_t_4;
21586 1 : Py_ssize_t __pyx_t_5;
21587 1 : Py_ssize_t __pyx_t_6;
21588 1 : Py_ssize_t __pyx_t_7;
21589 1 : Py_ssize_t __pyx_t_8;
21590 1 : Py_ssize_t __pyx_t_9;
21591 1 : PyObject *__pyx_t_10 = NULL;
21592 1 : Py_ssize_t __pyx_t_11;
21593 1 : Py_ssize_t __pyx_t_12;
21594 1 : PyObject *__pyx_t_13 = NULL;
21595 1 : Py_ssize_t __pyx_t_14;
21596 1 : PyObject *__pyx_t_15 = NULL;
21597 1 : PyObject **__pyx_t_16;
21598 1 : PyObject *__pyx_t_17 = NULL;
21599 1 : int __pyx_lineno = 0;
21600 1 : const char *__pyx_filename = NULL;
21601 1 : int __pyx_clineno = 0;
21602 1 : __Pyx_RefNannySetupContext("_sosfilt_object", 1);
21603 :
21604 : /* "scipy/signal/_sosfilt.pyx":66
21605 : * object [:, :, ::1] zi):
21606 : * # Modifies x and zi in place
21607 : * cdef Py_ssize_t n_signals = x.shape[0] # <<<<<<<<<<<<<<
21608 : * cdef Py_ssize_t n_samples = x.shape[1]
21609 : * cdef Py_ssize_t n_sections = sos.shape[0]
21610 : */
21611 1 : __pyx_v_n_signals = (__pyx_v_x.shape[0]);
21612 :
21613 : /* "scipy/signal/_sosfilt.pyx":67
21614 : * # Modifies x and zi in place
21615 : * cdef Py_ssize_t n_signals = x.shape[0]
21616 : * cdef Py_ssize_t n_samples = x.shape[1] # <<<<<<<<<<<<<<
21617 : * cdef Py_ssize_t n_sections = sos.shape[0]
21618 : * cdef Py_ssize_t i, n, s
21619 : */
21620 1 : __pyx_v_n_samples = (__pyx_v_x.shape[1]);
21621 :
21622 : /* "scipy/signal/_sosfilt.pyx":68
21623 : * cdef Py_ssize_t n_signals = x.shape[0]
21624 : * cdef Py_ssize_t n_samples = x.shape[1]
21625 : * cdef Py_ssize_t n_sections = sos.shape[0] # <<<<<<<<<<<<<<
21626 : * cdef Py_ssize_t i, n, s
21627 : * cdef object x_n
21628 : */
21629 1 : __pyx_v_n_sections = (__pyx_v_sos.shape[0]);
21630 :
21631 : /* "scipy/signal/_sosfilt.pyx":71
21632 : * cdef Py_ssize_t i, n, s
21633 : * cdef object x_n
21634 : * for i in xrange(n_signals): # <<<<<<<<<<<<<<
21635 : * for n in xrange(n_samples):
21636 : * for s in xrange(n_sections):
21637 : */
21638 1 : __pyx_t_1 = __pyx_v_n_signals;
21639 1 : __pyx_t_2 = __pyx_t_1;
21640 2 : for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
21641 : __pyx_v_i = __pyx_t_3;
21642 :
21643 : /* "scipy/signal/_sosfilt.pyx":72
21644 : * cdef object x_n
21645 : * for i in xrange(n_signals):
21646 : * for n in xrange(n_samples): # <<<<<<<<<<<<<<
21647 : * for s in xrange(n_sections):
21648 : * x_n = x[i, n] # make a temporary copy
21649 : */
21650 : __pyx_t_4 = __pyx_v_n_samples;
21651 : __pyx_t_5 = __pyx_t_4;
21652 4 : for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
21653 : __pyx_v_n = __pyx_t_6;
21654 :
21655 : /* "scipy/signal/_sosfilt.pyx":73
21656 : * for i in xrange(n_signals):
21657 : * for n in xrange(n_samples):
21658 : * for s in xrange(n_sections): # <<<<<<<<<<<<<<
21659 : * x_n = x[i, n] # make a temporary copy
21660 : * # Use direct II transposed structure:
21661 : */
21662 : __pyx_t_7 = __pyx_v_n_sections;
21663 : __pyx_t_8 = __pyx_t_7;
21664 6 : for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
21665 3 : __pyx_v_s = __pyx_t_9;
21666 :
21667 : /* "scipy/signal/_sosfilt.pyx":74
21668 : * for n in xrange(n_samples):
21669 : * for s in xrange(n_sections):
21670 : * x_n = x[i, n] # make a temporary copy # <<<<<<<<<<<<<<
21671 : * # Use direct II transposed structure:
21672 : * x[i, n] = sos[s, 0] * x_n + zi[i, s, 0]
21673 : */
21674 3 : __pyx_t_11 = __pyx_v_i;
21675 3 : __pyx_t_12 = __pyx_v_n;
21676 3 : __pyx_t_10 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_11 * __pyx_v_x.strides[0]) )) + __pyx_t_12)) ));
21677 3 : if (unlikely(__pyx_t_10 == NULL)) __pyx_t_10 = Py_None;
21678 3 : __Pyx_INCREF((PyObject*)__pyx_t_10);
21679 3 : __Pyx_XDECREF_SET(__pyx_v_x_n, __pyx_t_10);
21680 3 : __pyx_t_10 = 0;
21681 :
21682 : /* "scipy/signal/_sosfilt.pyx":76
21683 : * x_n = x[i, n] # make a temporary copy
21684 : * # Use direct II transposed structure:
21685 : * x[i, n] = sos[s, 0] * x_n + zi[i, s, 0] # <<<<<<<<<<<<<<
21686 : * zi[i, s, 0] = (sos[s, 1] * x_n - sos[s, 4] * x[i, n] +
21687 : * zi[i, s, 1])
21688 : */
21689 3 : __pyx_t_12 = __pyx_v_s;
21690 3 : __pyx_t_11 = 0;
21691 3 : __pyx_t_10 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_12 * __pyx_v_sos.strides[0]) )) + __pyx_t_11)) ));
21692 3 : if (unlikely(__pyx_t_10 == NULL)) __pyx_t_10 = Py_None;
21693 3 : __Pyx_INCREF((PyObject*)__pyx_t_10);
21694 3 : __pyx_t_13 = PyNumber_Multiply(__pyx_t_10, __pyx_v_x_n); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 76, __pyx_L1_error)
21695 3 : __Pyx_GOTREF(__pyx_t_13);
21696 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21697 3 : __pyx_t_11 = __pyx_v_i;
21698 3 : __pyx_t_12 = __pyx_v_s;
21699 3 : __pyx_t_14 = 0;
21700 3 : __pyx_t_10 = (PyObject *) *((PyObject * *) ( /* dim=2 */ ((char *) (((PyObject * *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_zi.data + __pyx_t_11 * __pyx_v_zi.strides[0]) ) + __pyx_t_12 * __pyx_v_zi.strides[1]) )) + __pyx_t_14)) ));
21701 3 : if (unlikely(__pyx_t_10 == NULL)) __pyx_t_10 = Py_None;
21702 3 : __Pyx_INCREF((PyObject*)__pyx_t_10);
21703 3 : __pyx_t_15 = PyNumber_Add(__pyx_t_13, __pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 76, __pyx_L1_error)
21704 3 : __Pyx_GOTREF(__pyx_t_15);
21705 3 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21706 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21707 3 : __pyx_t_14 = __pyx_v_i;
21708 3 : __pyx_t_12 = __pyx_v_n;
21709 3 : __pyx_t_16 = ((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_14 * __pyx_v_x.strides[0]) )) + __pyx_t_12)) ));
21710 3 : __Pyx_XGOTREF(*__pyx_t_16);
21711 6 : __Pyx_INCREF(__pyx_t_15); __Pyx_XDECREF(*__pyx_t_16);
21712 3 : *__pyx_t_16 = __pyx_t_15;
21713 3 : __Pyx_XGIVEREF(*__pyx_t_16);
21714 3 : __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21715 :
21716 : /* "scipy/signal/_sosfilt.pyx":77
21717 : * # Use direct II transposed structure:
21718 : * x[i, n] = sos[s, 0] * x_n + zi[i, s, 0]
21719 : * zi[i, s, 0] = (sos[s, 1] * x_n - sos[s, 4] * x[i, n] + # <<<<<<<<<<<<<<
21720 : * zi[i, s, 1])
21721 : * zi[i, s, 1] = (sos[s, 2] * x_n - sos[s, 5] * x[i, n])
21722 : */
21723 3 : __pyx_t_12 = __pyx_v_s;
21724 3 : __pyx_t_14 = 1;
21725 3 : __pyx_t_15 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_12 * __pyx_v_sos.strides[0]) )) + __pyx_t_14)) ));
21726 3 : if (unlikely(__pyx_t_15 == NULL)) __pyx_t_15 = Py_None;
21727 3 : __Pyx_INCREF((PyObject*)__pyx_t_15);
21728 3 : __pyx_t_10 = PyNumber_Multiply(__pyx_t_15, __pyx_v_x_n); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 77, __pyx_L1_error)
21729 3 : __Pyx_GOTREF(__pyx_t_10);
21730 3 : __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21731 3 : __pyx_t_14 = __pyx_v_s;
21732 3 : __pyx_t_12 = 4;
21733 3 : __pyx_t_15 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_12)) ));
21734 3 : if (unlikely(__pyx_t_15 == NULL)) __pyx_t_15 = Py_None;
21735 3 : __Pyx_INCREF((PyObject*)__pyx_t_15);
21736 3 : __pyx_t_12 = __pyx_v_i;
21737 3 : __pyx_t_14 = __pyx_v_n;
21738 3 : __pyx_t_13 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_12 * __pyx_v_x.strides[0]) )) + __pyx_t_14)) ));
21739 3 : if (unlikely(__pyx_t_13 == NULL)) __pyx_t_13 = Py_None;
21740 3 : __Pyx_INCREF((PyObject*)__pyx_t_13);
21741 3 : __pyx_t_17 = PyNumber_Multiply(__pyx_t_15, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 77, __pyx_L1_error)
21742 3 : __Pyx_GOTREF(__pyx_t_17);
21743 3 : __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21744 3 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21745 3 : __pyx_t_13 = PyNumber_Subtract(__pyx_t_10, __pyx_t_17); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 77, __pyx_L1_error)
21746 3 : __Pyx_GOTREF(__pyx_t_13);
21747 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21748 3 : __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
21749 :
21750 : /* "scipy/signal/_sosfilt.pyx":78
21751 : * x[i, n] = sos[s, 0] * x_n + zi[i, s, 0]
21752 : * zi[i, s, 0] = (sos[s, 1] * x_n - sos[s, 4] * x[i, n] +
21753 : * zi[i, s, 1]) # <<<<<<<<<<<<<<
21754 : * zi[i, s, 1] = (sos[s, 2] * x_n - sos[s, 5] * x[i, n])
21755 : *
21756 : */
21757 3 : __pyx_t_14 = __pyx_v_i;
21758 3 : __pyx_t_12 = __pyx_v_s;
21759 3 : __pyx_t_11 = 1;
21760 3 : __pyx_t_17 = (PyObject *) *((PyObject * *) ( /* dim=2 */ ((char *) (((PyObject * *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_zi.data + __pyx_t_14 * __pyx_v_zi.strides[0]) ) + __pyx_t_12 * __pyx_v_zi.strides[1]) )) + __pyx_t_11)) ));
21761 3 : if (unlikely(__pyx_t_17 == NULL)) __pyx_t_17 = Py_None;
21762 3 : __Pyx_INCREF((PyObject*)__pyx_t_17);
21763 :
21764 : /* "scipy/signal/_sosfilt.pyx":77
21765 : * # Use direct II transposed structure:
21766 : * x[i, n] = sos[s, 0] * x_n + zi[i, s, 0]
21767 : * zi[i, s, 0] = (sos[s, 1] * x_n - sos[s, 4] * x[i, n] + # <<<<<<<<<<<<<<
21768 : * zi[i, s, 1])
21769 : * zi[i, s, 1] = (sos[s, 2] * x_n - sos[s, 5] * x[i, n])
21770 : */
21771 3 : __pyx_t_10 = PyNumber_Add(__pyx_t_13, __pyx_t_17); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 77, __pyx_L1_error)
21772 3 : __Pyx_GOTREF(__pyx_t_10);
21773 3 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21774 3 : __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
21775 3 : __pyx_t_11 = __pyx_v_i;
21776 3 : __pyx_t_12 = __pyx_v_s;
21777 3 : __pyx_t_14 = 0;
21778 3 : __pyx_t_16 = ((PyObject * *) ( /* dim=2 */ ((char *) (((PyObject * *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_zi.data + __pyx_t_11 * __pyx_v_zi.strides[0]) ) + __pyx_t_12 * __pyx_v_zi.strides[1]) )) + __pyx_t_14)) ));
21779 3 : __Pyx_XGOTREF(*__pyx_t_16);
21780 6 : __Pyx_INCREF(__pyx_t_10); __Pyx_XDECREF(*__pyx_t_16);
21781 3 : *__pyx_t_16 = __pyx_t_10;
21782 3 : __Pyx_XGIVEREF(*__pyx_t_16);
21783 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21784 :
21785 : /* "scipy/signal/_sosfilt.pyx":79
21786 : * zi[i, s, 0] = (sos[s, 1] * x_n - sos[s, 4] * x[i, n] +
21787 : * zi[i, s, 1])
21788 : * zi[i, s, 1] = (sos[s, 2] * x_n - sos[s, 5] * x[i, n]) # <<<<<<<<<<<<<<
21789 : *
21790 : *
21791 : */
21792 3 : __pyx_t_14 = __pyx_v_s;
21793 3 : __pyx_t_12 = 2;
21794 3 : __pyx_t_10 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_14 * __pyx_v_sos.strides[0]) )) + __pyx_t_12)) ));
21795 3 : if (unlikely(__pyx_t_10 == NULL)) __pyx_t_10 = Py_None;
21796 3 : __Pyx_INCREF((PyObject*)__pyx_t_10);
21797 3 : __pyx_t_17 = PyNumber_Multiply(__pyx_t_10, __pyx_v_x_n); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 79, __pyx_L1_error)
21798 3 : __Pyx_GOTREF(__pyx_t_17);
21799 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21800 3 : __pyx_t_12 = __pyx_v_s;
21801 3 : __pyx_t_14 = 5;
21802 3 : __pyx_t_10 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_sos.data + __pyx_t_12 * __pyx_v_sos.strides[0]) )) + __pyx_t_14)) ));
21803 3 : if (unlikely(__pyx_t_10 == NULL)) __pyx_t_10 = Py_None;
21804 3 : __Pyx_INCREF((PyObject*)__pyx_t_10);
21805 3 : __pyx_t_14 = __pyx_v_i;
21806 3 : __pyx_t_12 = __pyx_v_n;
21807 3 : __pyx_t_13 = (PyObject *) *((PyObject * *) ( /* dim=1 */ ((char *) (((PyObject * *) ( /* dim=0 */ (__pyx_v_x.data + __pyx_t_14 * __pyx_v_x.strides[0]) )) + __pyx_t_12)) ));
21808 3 : if (unlikely(__pyx_t_13 == NULL)) __pyx_t_13 = Py_None;
21809 3 : __Pyx_INCREF((PyObject*)__pyx_t_13);
21810 3 : __pyx_t_15 = PyNumber_Multiply(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 79, __pyx_L1_error)
21811 3 : __Pyx_GOTREF(__pyx_t_15);
21812 3 : __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
21813 3 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21814 3 : __pyx_t_13 = PyNumber_Subtract(__pyx_t_17, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 79, __pyx_L1_error)
21815 3 : __Pyx_GOTREF(__pyx_t_13);
21816 3 : __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
21817 3 : __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
21818 3 : __pyx_t_12 = __pyx_v_i;
21819 3 : __pyx_t_14 = __pyx_v_s;
21820 3 : __pyx_t_11 = 1;
21821 3 : __pyx_t_16 = ((PyObject * *) ( /* dim=2 */ ((char *) (((PyObject * *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_zi.data + __pyx_t_12 * __pyx_v_zi.strides[0]) ) + __pyx_t_14 * __pyx_v_zi.strides[1]) )) + __pyx_t_11)) ));
21822 3 : __Pyx_XGOTREF(*__pyx_t_16);
21823 6 : __Pyx_INCREF(__pyx_t_13); __Pyx_XDECREF(*__pyx_t_16);
21824 3 : *__pyx_t_16 = __pyx_t_13;
21825 3 : __Pyx_XGIVEREF(*__pyx_t_16);
21826 6 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
21827 : }
21828 : }
21829 : }
21830 :
21831 : /* "scipy/signal/_sosfilt.pyx":59
21832 : *
21833 : *
21834 : * @cython.cdivision(True) # <<<<<<<<<<<<<<
21835 : * @cython.boundscheck(False)
21836 : * @cython.wraparound(False)
21837 : */
21838 :
21839 : /* function exit code */
21840 1 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
21841 1 : goto __pyx_L0;
21842 0 : __pyx_L1_error:;
21843 0 : __Pyx_XDECREF(__pyx_t_10);
21844 0 : __Pyx_XDECREF(__pyx_t_13);
21845 0 : __Pyx_XDECREF(__pyx_t_15);
21846 0 : __Pyx_XDECREF(__pyx_t_17);
21847 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt_object", __pyx_clineno, __pyx_lineno, __pyx_filename);
21848 0 : __pyx_r = NULL;
21849 1 : __pyx_L0:;
21850 1 : __Pyx_XDECREF(__pyx_v_x_n);
21851 1 : __Pyx_XGIVEREF(__pyx_r);
21852 1 : __Pyx_RefNannyFinishContext();
21853 1 : return __pyx_r;
21854 : }
21855 :
21856 : /* "scipy/signal/_sosfilt.pyx":82
21857 : *
21858 : *
21859 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
21860 : * DTYPE_t [:, ::1] x,
21861 : * DTYPE_t [:, :, ::1] zi):
21862 : */
21863 :
21864 : /* Python wrapper */
21865 : static PyObject *__pyx_pw_5scipy_6signal_8_sosfilt_3_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
21866 : static PyMethodDef __pyx_mdef_5scipy_6signal_8_sosfilt_3_sosfilt = {"_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5scipy_6signal_8_sosfilt_3_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
21867 134 : static PyObject *__pyx_pw_5scipy_6signal_8_sosfilt_3_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
21868 134 : PyObject *__pyx_v_signatures = 0;
21869 134 : PyObject *__pyx_v_args = 0;
21870 134 : PyObject *__pyx_v_kwargs = 0;
21871 134 : CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
21872 134 : PyObject *__pyx_v__fused_sigindex = 0;
21873 134 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
21874 134 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
21875 134 : PyObject* values[5] = {0,0,0,0,0};
21876 134 : int __pyx_lineno = 0;
21877 134 : const char *__pyx_filename = NULL;
21878 134 : int __pyx_clineno = 0;
21879 134 : PyObject *__pyx_r = 0;
21880 : __Pyx_RefNannyDeclarations
21881 134 : __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
21882 : #if CYTHON_ASSUME_SAFE_MACROS
21883 134 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
21884 : #else
21885 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
21886 : #endif
21887 134 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
21888 : {
21889 134 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,&__pyx_n_s_fused_sigindex,0};
21890 134 : __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
21891 134 : values[4] = __Pyx_Arg_NewRef_VARARGS(__pyx_dynamic_args->__pyx_arg__fused_sigindex);
21892 134 : if (__pyx_kwds) {
21893 0 : Py_ssize_t kw_args;
21894 0 : switch (__pyx_nargs) {
21895 0 : case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
21896 0 : CYTHON_FALLTHROUGH;
21897 0 : case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
21898 0 : CYTHON_FALLTHROUGH;
21899 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
21900 0 : CYTHON_FALLTHROUGH;
21901 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
21902 0 : CYTHON_FALLTHROUGH;
21903 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
21904 0 : CYTHON_FALLTHROUGH;
21905 0 : case 0: break;
21906 0 : default: goto __pyx_L5_argtuple_error;
21907 : }
21908 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
21909 0 : switch (__pyx_nargs) {
21910 0 : case 0:
21911 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signatures)) != 0)) {
21912 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
21913 0 : kw_args--;
21914 : }
21915 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
21916 0 : else goto __pyx_L5_argtuple_error;
21917 0 : CYTHON_FALLTHROUGH;
21918 : case 1:
21919 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_args)) != 0)) {
21920 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
21921 0 : kw_args--;
21922 : }
21923 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
21924 : else {
21925 0 : __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 1); __PYX_ERR(0, 82, __pyx_L3_error)
21926 : }
21927 0 : CYTHON_FALLTHROUGH;
21928 : case 2:
21929 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_kwargs)) != 0)) {
21930 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
21931 0 : kw_args--;
21932 : }
21933 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
21934 : else {
21935 0 : __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 2); __PYX_ERR(0, 82, __pyx_L3_error)
21936 : }
21937 0 : CYTHON_FALLTHROUGH;
21938 : case 3:
21939 0 : if (likely((values[3] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_defaults)) != 0)) {
21940 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[3]);
21941 0 : kw_args--;
21942 : }
21943 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
21944 : else {
21945 0 : __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, 3); __PYX_ERR(0, 82, __pyx_L3_error)
21946 : }
21947 0 : CYTHON_FALLTHROUGH;
21948 : case 4:
21949 0 : if (kw_args > 0) {
21950 0 : PyObject* value = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fused_sigindex);
21951 0 : if (value) { values[4] = __Pyx_Arg_NewRef_VARARGS(value); kw_args--; }
21952 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
21953 : }
21954 : }
21955 0 : if (unlikely(kw_args > 0)) {
21956 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
21957 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
21958 : }
21959 : } else {
21960 134 : switch (__pyx_nargs) {
21961 0 : case 5: values[4] = __Pyx_Arg_VARARGS(__pyx_args, 4);
21962 134 : CYTHON_FALLTHROUGH;
21963 134 : case 4: values[3] = __Pyx_Arg_VARARGS(__pyx_args, 3);
21964 134 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
21965 134 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
21966 134 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
21967 134 : break;
21968 0 : default: goto __pyx_L5_argtuple_error;
21969 : }
21970 : }
21971 134 : __pyx_v_signatures = values[0];
21972 134 : __pyx_v_args = values[1];
21973 134 : __pyx_v_kwargs = values[2];
21974 134 : __pyx_v_defaults = values[3];
21975 134 : __pyx_v__fused_sigindex = values[4];
21976 : }
21977 134 : goto __pyx_L6_skip;
21978 0 : __pyx_L5_argtuple_error:;
21979 0 : __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 0, 4, 5, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
21980 134 : __pyx_L6_skip:;
21981 134 : goto __pyx_L4_argument_unpacking_done;
21982 0 : __pyx_L3_error:;
21983 : {
21984 0 : Py_ssize_t __pyx_temp;
21985 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
21986 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
21987 : }
21988 : }
21989 0 : __Pyx_AddTraceback("scipy.signal._sosfilt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
21990 0 : __Pyx_RefNannyFinishContext();
21991 0 : return NULL;
21992 134 : __pyx_L4_argument_unpacking_done:;
21993 134 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_2_sosfilt(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults, __pyx_v__fused_sigindex);
21994 :
21995 : /* function exit code */
21996 : {
21997 134 : Py_ssize_t __pyx_temp;
21998 134 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
21999 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
22000 : }
22001 : }
22002 : __Pyx_RefNannyFinishContext();
22003 : return __pyx_r;
22004 : }
22005 :
22006 134 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_2_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults, PyObject *__pyx_v__fused_sigindex) {
22007 134 : PyObject *__pyx_v_search_list = 0;
22008 134 : PyObject *__pyx_v_sigindex_node = 0;
22009 134 : PyObject *__pyx_v_dest_sig = NULL;
22010 134 : PyTypeObject *__pyx_v_ndarray = 0;
22011 134 : PyObject *__pyx_v_arg_as_memoryview = 0;
22012 134 : __Pyx_memviewslice __pyx_v_memslice;
22013 134 : Py_ssize_t __pyx_v_itemsize;
22014 134 : CYTHON_UNUSED int __pyx_v_dtype_signed;
22015 134 : Py_UCS4 __pyx_v_kind;
22016 134 : PyObject *__pyx_v_arg = NULL;
22017 134 : PyObject *__pyx_v_dtype = NULL;
22018 134 : PyObject *__pyx_v_arg_base = NULL;
22019 134 : PyObject *__pyx_v_sig = NULL;
22020 134 : PyObject *__pyx_v_sig_series = NULL;
22021 134 : PyObject *__pyx_v_last_type = NULL;
22022 134 : PyObject *__pyx_v_sig_type = NULL;
22023 134 : PyObject *__pyx_v_sigindex_matches = NULL;
22024 134 : PyObject *__pyx_v_sigindex_candidates = NULL;
22025 134 : PyObject *__pyx_v_dst_type = NULL;
22026 134 : PyObject *__pyx_v_found_matches = NULL;
22027 134 : PyObject *__pyx_v_found_candidates = NULL;
22028 134 : PyObject *__pyx_v_sn = NULL;
22029 134 : PyObject *__pyx_v_type_match = NULL;
22030 134 : PyObject *__pyx_v_candidates = NULL;
22031 134 : PyObject *__pyx_r = NULL;
22032 : __Pyx_RefNannyDeclarations
22033 134 : PyObject *__pyx_t_1 = NULL;
22034 134 : int __pyx_t_2;
22035 134 : int __pyx_t_3;
22036 134 : int __pyx_t_4;
22037 134 : Py_ssize_t __pyx_t_5;
22038 134 : PyObject *__pyx_t_6 = NULL;
22039 134 : long __pyx_t_7;
22040 134 : PyObject *__pyx_t_8 = NULL;
22041 134 : PyObject *__pyx_t_9 = NULL;
22042 134 : PyObject *__pyx_t_10 = NULL;
22043 134 : int __pyx_t_11;
22044 134 : __Pyx_memviewslice __pyx_t_12;
22045 134 : PyObject *__pyx_t_13 = NULL;
22046 134 : Py_ssize_t __pyx_t_14;
22047 134 : int __pyx_t_15;
22048 134 : PyObject *__pyx_t_16 = NULL;
22049 134 : PyObject *__pyx_t_17 = NULL;
22050 134 : unsigned int __pyx_t_18;
22051 134 : Py_ssize_t __pyx_t_19;
22052 134 : int __pyx_t_20;
22053 134 : int __pyx_lineno = 0;
22054 134 : const char *__pyx_filename = NULL;
22055 134 : int __pyx_clineno = 0;
22056 134 : __Pyx_RefNannySetupContext("_sosfilt", 0);
22057 134 : __Pyx_INCREF(__pyx_v_kwargs);
22058 134 : __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22059 134 : __Pyx_GOTREF(__pyx_t_1);
22060 134 : __Pyx_INCREF(Py_None);
22061 134 : __Pyx_GIVEREF(Py_None);
22062 134 : if (__Pyx_PyList_SET_ITEM(__pyx_t_1, 0, Py_None)) __PYX_ERR(0, 82, __pyx_L1_error);
22063 134 : __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
22064 134 : __pyx_t_1 = 0;
22065 134 : __pyx_t_3 = (__pyx_v_kwargs != Py_None);
22066 134 : if (__pyx_t_3) {
22067 0 : } else {
22068 134 : __pyx_t_2 = __pyx_t_3;
22069 134 : goto __pyx_L4_bool_binop_done;
22070 : }
22071 0 : __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely((__pyx_t_3 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22072 0 : __pyx_t_4 = (!__pyx_t_3);
22073 0 : __pyx_t_2 = __pyx_t_4;
22074 134 : __pyx_L4_bool_binop_done:;
22075 134 : if (__pyx_t_2) {
22076 0 : __Pyx_INCREF(Py_None);
22077 0 : __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
22078 : }
22079 134 : __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22080 134 : __Pyx_GOTREF(__pyx_t_1);
22081 134 : __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
22082 134 : __pyx_t_1 = 0;
22083 134 : __pyx_v_itemsize = -1L;
22084 134 : if (unlikely(__pyx_v_args == Py_None)) {
22085 0 : PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
22086 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22087 : }
22088 134 : __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22089 134 : __pyx_t_2 = (0 < __pyx_t_5);
22090 134 : if (__pyx_t_2) {
22091 134 : if (unlikely(__pyx_v_args == Py_None)) {
22092 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
22093 : __PYX_ERR(0, 82, __pyx_L1_error)
22094 : }
22095 134 : __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22096 134 : __Pyx_GOTREF(__pyx_t_1);
22097 134 : __pyx_v_arg = __pyx_t_1;
22098 134 : __pyx_t_1 = 0;
22099 134 : goto __pyx_L6;
22100 : }
22101 0 : __pyx_t_4 = (__pyx_v_kwargs != Py_None);
22102 0 : if (__pyx_t_4) {
22103 0 : } else {
22104 0 : __pyx_t_2 = __pyx_t_4;
22105 0 : goto __pyx_L7_bool_binop_done;
22106 : }
22107 0 : if (unlikely(__pyx_v_kwargs == Py_None)) {
22108 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
22109 : __PYX_ERR(0, 82, __pyx_L1_error)
22110 : }
22111 0 : __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_sos, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22112 : __pyx_t_2 = __pyx_t_4;
22113 0 : __pyx_L7_bool_binop_done:;
22114 0 : if (likely(__pyx_t_2)) {
22115 0 : if (unlikely(__pyx_v_kwargs == Py_None)) {
22116 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
22117 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22118 : }
22119 0 : __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_sos); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22120 0 : __Pyx_GOTREF(__pyx_t_1);
22121 0 : __pyx_v_arg = __pyx_t_1;
22122 0 : __pyx_t_1 = 0;
22123 0 : goto __pyx_L6;
22124 : }
22125 : /*else*/ {
22126 0 : if (unlikely(__pyx_v_args == Py_None)) {
22127 : PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
22128 : __PYX_ERR(0, 82, __pyx_L1_error)
22129 : }
22130 0 : __pyx_t_5 = __Pyx_PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22131 0 : __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22132 0 : __Pyx_GOTREF(__pyx_t_1);
22133 0 : __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22134 0 : __Pyx_GOTREF(__pyx_t_6);
22135 0 : __Pyx_INCREF(__pyx_int_3);
22136 0 : __Pyx_GIVEREF(__pyx_int_3);
22137 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_3)) __PYX_ERR(0, 82, __pyx_L1_error);
22138 0 : __Pyx_INCREF(__pyx_n_s_s);
22139 0 : __Pyx_GIVEREF(__pyx_n_s_s);
22140 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s)) __PYX_ERR(0, 82, __pyx_L1_error);
22141 0 : __Pyx_GIVEREF(__pyx_t_1);
22142 0 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error);
22143 0 : __pyx_t_1 = 0;
22144 0 : __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22145 0 : __Pyx_GOTREF(__pyx_t_1);
22146 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22147 0 : __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22148 0 : __Pyx_GOTREF(__pyx_t_6);
22149 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22150 0 : __Pyx_Raise(__pyx_t_6, 0, 0, 0);
22151 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22152 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22153 : }
22154 134 : __pyx_L6:;
22155 134 : while (1) {
22156 134 : __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
22157 134 : if (__pyx_t_2) {
22158 134 : __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray);
22159 134 : if (__pyx_t_2) {
22160 134 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22161 134 : __Pyx_GOTREF(__pyx_t_6);
22162 134 : __pyx_v_dtype = __pyx_t_6;
22163 134 : __pyx_t_6 = 0;
22164 134 : goto __pyx_L12;
22165 : }
22166 0 : __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg);
22167 0 : if (__pyx_t_2) {
22168 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22169 0 : __Pyx_GOTREF(__pyx_t_6);
22170 0 : __pyx_v_arg_base = __pyx_t_6;
22171 0 : __pyx_t_6 = 0;
22172 0 : __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray);
22173 0 : if (__pyx_t_2) {
22174 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22175 0 : __Pyx_GOTREF(__pyx_t_6);
22176 0 : __pyx_v_dtype = __pyx_t_6;
22177 0 : __pyx_t_6 = 0;
22178 0 : goto __pyx_L13;
22179 : }
22180 : /*else*/ {
22181 0 : __Pyx_INCREF(Py_None);
22182 : __pyx_v_dtype = Py_None;
22183 : }
22184 0 : __pyx_L13:;
22185 0 : goto __pyx_L12;
22186 : }
22187 : /*else*/ {
22188 0 : __Pyx_INCREF(Py_None);
22189 : __pyx_v_dtype = Py_None;
22190 : }
22191 134 : __pyx_L12:;
22192 134 : __pyx_v_itemsize = -1L;
22193 134 : __pyx_t_2 = (__pyx_v_dtype != Py_None);
22194 134 : if (__pyx_t_2) {
22195 134 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22196 134 : __Pyx_GOTREF(__pyx_t_6);
22197 134 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22198 134 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22199 134 : __pyx_v_itemsize = __pyx_t_5;
22200 134 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22201 134 : __Pyx_GOTREF(__pyx_t_6);
22202 134 : __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22203 134 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22204 134 : __pyx_v_kind = __pyx_t_7;
22205 134 : __pyx_v_dtype_signed = (__pyx_v_kind == 0x69);
22206 134 : switch (__pyx_v_kind) {
22207 : case 0x69:
22208 : case 0x75:
22209 : break;
22210 105 : case 0x66:
22211 105 : __pyx_t_4 = ((sizeof(float)) == __pyx_v_itemsize);
22212 105 : if (__pyx_t_4) {
22213 16 : } else {
22214 89 : __pyx_t_2 = __pyx_t_4;
22215 89 : goto __pyx_L16_bool_binop_done;
22216 : }
22217 16 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22218 16 : __Pyx_GOTREF(__pyx_t_6);
22219 16 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22220 16 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22221 16 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22222 16 : __pyx_t_2 = __pyx_t_4;
22223 105 : __pyx_L16_bool_binop_done:;
22224 105 : if (__pyx_t_2) {
22225 16 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22226 16 : goto __pyx_L10_break;
22227 : }
22228 89 : __pyx_t_4 = ((sizeof(double)) == __pyx_v_itemsize);
22229 89 : if (__pyx_t_4) {
22230 89 : } else {
22231 0 : __pyx_t_2 = __pyx_t_4;
22232 0 : goto __pyx_L19_bool_binop_done;
22233 : }
22234 89 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22235 89 : __Pyx_GOTREF(__pyx_t_6);
22236 89 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22237 89 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22238 89 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22239 89 : __pyx_t_2 = __pyx_t_4;
22240 89 : __pyx_L19_bool_binop_done:;
22241 89 : if (__pyx_t_2) {
22242 89 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22243 89 : goto __pyx_L10_break;
22244 : }
22245 0 : __pyx_t_4 = ((sizeof(long double)) == __pyx_v_itemsize);
22246 0 : if (__pyx_t_4) {
22247 0 : } else {
22248 0 : __pyx_t_2 = __pyx_t_4;
22249 0 : goto __pyx_L22_bool_binop_done;
22250 : }
22251 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22252 0 : __Pyx_GOTREF(__pyx_t_6);
22253 0 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22254 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22255 0 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22256 0 : __pyx_t_2 = __pyx_t_4;
22257 0 : __pyx_L22_bool_binop_done:;
22258 0 : if (__pyx_t_2) {
22259 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22260 0 : goto __pyx_L10_break;
22261 : }
22262 : break;
22263 28 : case 99:
22264 28 : __pyx_t_4 = ((sizeof(__pyx_t_float_complex)) == __pyx_v_itemsize);
22265 28 : if (__pyx_t_4) {
22266 0 : } else {
22267 28 : __pyx_t_2 = __pyx_t_4;
22268 28 : goto __pyx_L25_bool_binop_done;
22269 : }
22270 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22271 0 : __Pyx_GOTREF(__pyx_t_6);
22272 0 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22273 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22274 0 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22275 0 : __pyx_t_2 = __pyx_t_4;
22276 28 : __pyx_L25_bool_binop_done:;
22277 28 : if (__pyx_t_2) {
22278 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22279 0 : goto __pyx_L10_break;
22280 : }
22281 28 : __pyx_t_4 = ((sizeof(__pyx_t_double_complex)) == __pyx_v_itemsize);
22282 28 : if (__pyx_t_4) {
22283 28 : } else {
22284 0 : __pyx_t_2 = __pyx_t_4;
22285 0 : goto __pyx_L28_bool_binop_done;
22286 : }
22287 28 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22288 28 : __Pyx_GOTREF(__pyx_t_6);
22289 28 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22290 28 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22291 28 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22292 28 : __pyx_t_2 = __pyx_t_4;
22293 28 : __pyx_L28_bool_binop_done:;
22294 28 : if (__pyx_t_2) {
22295 28 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22296 28 : goto __pyx_L10_break;
22297 : }
22298 0 : __pyx_t_4 = ((sizeof(__pyx_t_long_double_complex)) == __pyx_v_itemsize);
22299 0 : if (__pyx_t_4) {
22300 0 : } else {
22301 0 : __pyx_t_2 = __pyx_t_4;
22302 0 : goto __pyx_L31_bool_binop_done;
22303 : }
22304 0 : __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22305 0 : __Pyx_GOTREF(__pyx_t_6);
22306 0 : __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L1_error)
22307 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22308 0 : __pyx_t_4 = (((Py_ssize_t)__pyx_t_5) == 2);
22309 0 : __pyx_t_2 = __pyx_t_4;
22310 0 : __pyx_L31_bool_binop_done:;
22311 0 : if (__pyx_t_2) {
22312 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22313 0 : goto __pyx_L10_break;
22314 : }
22315 : break;
22316 : case 79:
22317 : break;
22318 : default: break;
22319 : }
22320 : }
22321 : }
22322 1 : __pyx_t_2 = (__pyx_v_arg == Py_None);
22323 1 : if (__pyx_t_2) {
22324 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22325 0 : goto __pyx_L10_break;
22326 : }
22327 : {
22328 1 : __Pyx_PyThreadState_declare
22329 1 : __Pyx_PyThreadState_assign
22330 1 : __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
22331 1 : __Pyx_XGOTREF(__pyx_t_8);
22332 1 : __Pyx_XGOTREF(__pyx_t_9);
22333 1 : __Pyx_XGOTREF(__pyx_t_10);
22334 : /*try:*/ {
22335 1 : __pyx_t_6 = PyMemoryView_FromObject(__pyx_v_arg); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L34_error)
22336 1 : __Pyx_GOTREF(__pyx_t_6);
22337 1 : __pyx_v_arg_as_memoryview = ((PyObject*)__pyx_t_6);
22338 1 : __pyx_t_6 = 0;
22339 : }
22340 : /*else:*/ {
22341 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22342 1 : if (!__pyx_t_4) {
22343 1 : goto __pyx_L45_next_or;
22344 : } else {
22345 0 : }
22346 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22347 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(float)));
22348 0 : if (!__pyx_t_4) {
22349 : } else {
22350 0 : goto __pyx_L44_next_and;
22351 : }
22352 1 : __pyx_L45_next_or:;
22353 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(float)));
22354 1 : if (__pyx_t_4) {
22355 : } else {
22356 1 : __pyx_t_2 = __pyx_t_4;
22357 1 : goto __pyx_L43_bool_binop_done;
22358 : }
22359 0 : __pyx_L44_next_and:;
22360 0 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22361 0 : __pyx_t_4 = (__pyx_t_11 == 2);
22362 0 : __pyx_t_2 = __pyx_t_4;
22363 1 : __pyx_L43_bool_binop_done:;
22364 1 : if (__pyx_t_2) {
22365 0 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_float(__pyx_v_arg_as_memoryview, 0);
22366 0 : __pyx_v_memslice = __pyx_t_12;
22367 0 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22368 0 : if (__pyx_t_2) {
22369 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22370 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22371 0 : goto __pyx_L39_try_break;
22372 : }
22373 : /*else*/ {
22374 0 : PyErr_Clear();
22375 : }
22376 : }
22377 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22378 1 : if (!__pyx_t_4) {
22379 1 : goto __pyx_L51_next_or;
22380 : } else {
22381 0 : }
22382 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22383 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(__pyx_t_float_complex)));
22384 0 : if (!__pyx_t_4) {
22385 : } else {
22386 0 : goto __pyx_L50_next_and;
22387 : }
22388 1 : __pyx_L51_next_or:;
22389 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(__pyx_t_float_complex)));
22390 1 : if (__pyx_t_4) {
22391 : } else {
22392 0 : __pyx_t_2 = __pyx_t_4;
22393 0 : goto __pyx_L49_bool_binop_done;
22394 : }
22395 1 : __pyx_L50_next_and:;
22396 1 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22397 1 : __pyx_t_4 = (__pyx_t_11 == 2);
22398 1 : __pyx_t_2 = __pyx_t_4;
22399 1 : __pyx_L49_bool_binop_done:;
22400 1 : if (__pyx_t_2) {
22401 1 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_float_complex(__pyx_v_arg_as_memoryview, 0);
22402 1 : __pyx_v_memslice = __pyx_t_12;
22403 1 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22404 1 : if (__pyx_t_2) {
22405 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22406 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_float_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22407 0 : goto __pyx_L39_try_break;
22408 : }
22409 : /*else*/ {
22410 1 : PyErr_Clear();
22411 : }
22412 : }
22413 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22414 1 : if (!__pyx_t_4) {
22415 1 : goto __pyx_L57_next_or;
22416 : } else {
22417 0 : }
22418 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22419 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(double)));
22420 0 : if (!__pyx_t_4) {
22421 : } else {
22422 0 : goto __pyx_L56_next_and;
22423 : }
22424 1 : __pyx_L57_next_or:;
22425 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(double)));
22426 1 : if (__pyx_t_4) {
22427 : } else {
22428 0 : __pyx_t_2 = __pyx_t_4;
22429 0 : goto __pyx_L55_bool_binop_done;
22430 : }
22431 1 : __pyx_L56_next_and:;
22432 1 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22433 1 : __pyx_t_4 = (__pyx_t_11 == 2);
22434 1 : __pyx_t_2 = __pyx_t_4;
22435 1 : __pyx_L55_bool_binop_done:;
22436 1 : if (__pyx_t_2) {
22437 1 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(__pyx_v_arg_as_memoryview, 0);
22438 1 : __pyx_v_memslice = __pyx_t_12;
22439 1 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22440 1 : if (__pyx_t_2) {
22441 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22442 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22443 0 : goto __pyx_L39_try_break;
22444 : }
22445 : /*else*/ {
22446 1 : PyErr_Clear();
22447 : }
22448 : }
22449 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22450 1 : if (!__pyx_t_4) {
22451 1 : goto __pyx_L63_next_or;
22452 : } else {
22453 0 : }
22454 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22455 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(__pyx_t_double_complex)));
22456 0 : if (!__pyx_t_4) {
22457 : } else {
22458 0 : goto __pyx_L62_next_and;
22459 : }
22460 1 : __pyx_L63_next_or:;
22461 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(__pyx_t_double_complex)));
22462 1 : if (__pyx_t_4) {
22463 : } else {
22464 1 : __pyx_t_2 = __pyx_t_4;
22465 1 : goto __pyx_L61_bool_binop_done;
22466 : }
22467 0 : __pyx_L62_next_and:;
22468 0 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22469 0 : __pyx_t_4 = (__pyx_t_11 == 2);
22470 0 : __pyx_t_2 = __pyx_t_4;
22471 1 : __pyx_L61_bool_binop_done:;
22472 1 : if (__pyx_t_2) {
22473 0 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(__pyx_v_arg_as_memoryview, 0);
22474 0 : __pyx_v_memslice = __pyx_t_12;
22475 0 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22476 0 : if (__pyx_t_2) {
22477 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22478 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22479 0 : goto __pyx_L39_try_break;
22480 : }
22481 : /*else*/ {
22482 0 : PyErr_Clear();
22483 : }
22484 : }
22485 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22486 1 : if (!__pyx_t_4) {
22487 1 : goto __pyx_L69_next_or;
22488 : } else {
22489 0 : }
22490 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22491 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(long double)));
22492 0 : if (!__pyx_t_4) {
22493 : } else {
22494 0 : goto __pyx_L68_next_and;
22495 : }
22496 1 : __pyx_L69_next_or:;
22497 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(long double)));
22498 1 : if (__pyx_t_4) {
22499 : } else {
22500 1 : __pyx_t_2 = __pyx_t_4;
22501 1 : goto __pyx_L67_bool_binop_done;
22502 : }
22503 0 : __pyx_L68_next_and:;
22504 0 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22505 0 : __pyx_t_4 = (__pyx_t_11 == 2);
22506 0 : __pyx_t_2 = __pyx_t_4;
22507 1 : __pyx_L67_bool_binop_done:;
22508 1 : if (__pyx_t_2) {
22509 0 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_long__double(__pyx_v_arg_as_memoryview, 0);
22510 0 : __pyx_v_memslice = __pyx_t_12;
22511 0 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22512 0 : if (__pyx_t_2) {
22513 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22514 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22515 0 : goto __pyx_L39_try_break;
22516 : }
22517 : /*else*/ {
22518 0 : PyErr_Clear();
22519 : }
22520 : }
22521 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22522 1 : if (!__pyx_t_4) {
22523 1 : goto __pyx_L75_next_or;
22524 : } else {
22525 0 : }
22526 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22527 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(__pyx_t_long_double_complex)));
22528 0 : if (!__pyx_t_4) {
22529 : } else {
22530 0 : goto __pyx_L74_next_and;
22531 : }
22532 1 : __pyx_L75_next_or:;
22533 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(__pyx_t_long_double_complex)));
22534 1 : if (__pyx_t_4) {
22535 : } else {
22536 1 : __pyx_t_2 = __pyx_t_4;
22537 1 : goto __pyx_L73_bool_binop_done;
22538 : }
22539 0 : __pyx_L74_next_and:;
22540 0 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22541 0 : __pyx_t_4 = (__pyx_t_11 == 2);
22542 0 : __pyx_t_2 = __pyx_t_4;
22543 1 : __pyx_L73_bool_binop_done:;
22544 1 : if (__pyx_t_2) {
22545 0 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_long_double_complex(__pyx_v_arg_as_memoryview, 0);
22546 0 : __pyx_v_memslice = __pyx_t_12;
22547 0 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22548 0 : if (__pyx_t_2) {
22549 0 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22550 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_kp_s_long_double_complex, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22551 0 : goto __pyx_L39_try_break;
22552 : }
22553 : /*else*/ {
22554 0 : PyErr_Clear();
22555 : }
22556 : }
22557 1 : __pyx_t_4 = (__pyx_v_itemsize == -1L);
22558 1 : if (!__pyx_t_4) {
22559 1 : goto __pyx_L81_next_or;
22560 : } else {
22561 0 : }
22562 0 : __pyx_t_5 = __Pyx_PyMemoryView_Get_itemsize(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22563 0 : __pyx_t_4 = (__pyx_t_5 == (sizeof(void *)));
22564 0 : if (!__pyx_t_4) {
22565 : } else {
22566 0 : goto __pyx_L80_next_and;
22567 : }
22568 1 : __pyx_L81_next_or:;
22569 1 : __pyx_t_4 = (__pyx_v_itemsize == (sizeof(void *)));
22570 1 : if (__pyx_t_4) {
22571 : } else {
22572 0 : __pyx_t_2 = __pyx_t_4;
22573 0 : goto __pyx_L79_bool_binop_done;
22574 : }
22575 1 : __pyx_L80_next_and:;
22576 1 : __pyx_t_11 = __Pyx_PyMemoryView_Get_ndim(__pyx_v_arg_as_memoryview); if (unlikely(__pyx_t_11 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L36_except_error)
22577 1 : __pyx_t_4 = (__pyx_t_11 == 2);
22578 1 : __pyx_t_2 = __pyx_t_4;
22579 1 : __pyx_L79_bool_binop_done:;
22580 1 : if (__pyx_t_2) {
22581 1 : if ((CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION == 2)) {
22582 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(__pyx_v_arg, 0);
22583 : __pyx_v_memslice = __pyx_t_12;
22584 : goto __pyx_L83;
22585 : }
22586 : /*else*/ {
22587 1 : __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(__pyx_v_arg_as_memoryview, 0);
22588 1 : __pyx_v_memslice = __pyx_t_12;
22589 : }
22590 1 : __pyx_L83:;
22591 1 : __pyx_t_2 = (__pyx_v_memslice.memview != 0);
22592 1 : if (__pyx_t_2) {
22593 1 : __PYX_XCLEAR_MEMVIEW((&__pyx_v_memslice), 1);
22594 1 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L36_except_error)
22595 1 : goto __pyx_L39_try_break;
22596 : }
22597 : /*else*/ {
22598 0 : PyErr_Clear();
22599 : }
22600 : }
22601 : }
22602 0 : __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
22603 0 : __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
22604 0 : __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
22605 0 : goto __pyx_L41_try_end;
22606 0 : __pyx_L34_error:;
22607 0 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
22608 0 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22609 0 : __pyx_t_11 = __Pyx_PyErr_ExceptionMatches2(__pyx_builtin_ValueError, __pyx_builtin_TypeError);
22610 0 : if (__pyx_t_11) {
22611 0 : __Pyx_AddTraceback("scipy.signal._sosfilt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
22612 0 : if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_1, &__pyx_t_13) < 0) __PYX_ERR(0, 82, __pyx_L36_except_error)
22613 0 : __Pyx_XGOTREF(__pyx_t_6);
22614 0 : __Pyx_XGOTREF(__pyx_t_1);
22615 0 : __Pyx_XGOTREF(__pyx_t_13);
22616 0 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22617 0 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
22618 0 : __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
22619 0 : goto __pyx_L35_exception_handled;
22620 : }
22621 0 : goto __pyx_L36_except_error;
22622 0 : __pyx_L36_except_error:;
22623 0 : __Pyx_XGIVEREF(__pyx_t_8);
22624 0 : __Pyx_XGIVEREF(__pyx_t_9);
22625 0 : __Pyx_XGIVEREF(__pyx_t_10);
22626 0 : __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
22627 0 : goto __pyx_L1_error;
22628 1 : __pyx_L39_try_break:;
22629 1 : __Pyx_XGIVEREF(__pyx_t_8);
22630 1 : __Pyx_XGIVEREF(__pyx_t_9);
22631 1 : __Pyx_XGIVEREF(__pyx_t_10);
22632 1 : __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
22633 1 : goto __pyx_L10_break;
22634 0 : __pyx_L35_exception_handled:;
22635 0 : __Pyx_XGIVEREF(__pyx_t_8);
22636 0 : __Pyx_XGIVEREF(__pyx_t_9);
22637 0 : __Pyx_XGIVEREF(__pyx_t_10);
22638 0 : __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
22639 0 : __pyx_L41_try_end:;
22640 : }
22641 0 : if (unlikely((__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22642 0 : goto __pyx_L10_break;
22643 : }
22644 134 : __pyx_L10_break:;
22645 134 : __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__fused_sigindex); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22646 134 : __pyx_t_4 = (!__pyx_t_2);
22647 134 : if (__pyx_t_4) {
22648 1 : __pyx_t_5 = 0;
22649 1 : if (unlikely(__pyx_v_signatures == Py_None)) {
22650 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
22651 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22652 : }
22653 2 : __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_11)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22654 1 : __Pyx_GOTREF(__pyx_t_1);
22655 1 : __Pyx_XDECREF(__pyx_t_13);
22656 1 : __pyx_t_13 = __pyx_t_1;
22657 1 : __pyx_t_1 = 0;
22658 8 : while (1) {
22659 8 : __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_13, __pyx_t_14, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_11);
22660 8 : if (unlikely(__pyx_t_15 == 0)) break;
22661 7 : if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 82, __pyx_L1_error)
22662 7 : __Pyx_GOTREF(__pyx_t_1);
22663 7 : __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
22664 7 : __pyx_t_1 = 0;
22665 7 : __pyx_t_1 = __pyx_v__fused_sigindex;
22666 7 : __Pyx_INCREF(__pyx_t_1);
22667 7 : __Pyx_XDECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_1));
22668 7 : __pyx_t_1 = 0;
22669 7 : __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22670 7 : __Pyx_GOTREF(__pyx_t_16);
22671 7 : __pyx_t_17 = NULL;
22672 7 : __pyx_t_18 = 0;
22673 : #if CYTHON_UNPACK_METHODS
22674 7 : if (likely(PyMethod_Check(__pyx_t_16))) {
22675 0 : __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
22676 0 : if (likely(__pyx_t_17)) {
22677 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
22678 0 : __Pyx_INCREF(__pyx_t_17);
22679 0 : __Pyx_INCREF(function);
22680 0 : __Pyx_DECREF_SET(__pyx_t_16, function);
22681 : __pyx_t_18 = 1;
22682 : }
22683 : }
22684 : #endif
22685 : {
22686 7 : PyObject *__pyx_callargs[2] = {__pyx_t_17, __pyx_kp_s__11};
22687 7 : __pyx_t_6 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
22688 7 : __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
22689 7 : if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22690 7 : __Pyx_GOTREF(__pyx_t_6);
22691 7 : __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
22692 : }
22693 7 : __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_split); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22694 7 : __Pyx_GOTREF(__pyx_t_16);
22695 7 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22696 7 : __pyx_t_6 = NULL;
22697 7 : __pyx_t_18 = 0;
22698 : #if CYTHON_UNPACK_METHODS
22699 7 : if (likely(PyMethod_Check(__pyx_t_16))) {
22700 0 : __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_16);
22701 0 : if (likely(__pyx_t_6)) {
22702 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
22703 0 : __Pyx_INCREF(__pyx_t_6);
22704 0 : __Pyx_INCREF(function);
22705 0 : __Pyx_DECREF_SET(__pyx_t_16, function);
22706 : __pyx_t_18 = 1;
22707 : }
22708 : }
22709 : #endif
22710 : {
22711 7 : PyObject *__pyx_callargs[2] = {__pyx_t_6, __pyx_kp_s__12};
22712 7 : __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_16, __pyx_callargs+1-__pyx_t_18, 1+__pyx_t_18);
22713 7 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
22714 7 : if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22715 7 : __Pyx_GOTREF(__pyx_t_1);
22716 7 : __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
22717 : }
22718 14 : __pyx_t_16 = __Pyx_PySequence_ListKeepNew(__pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22719 7 : __Pyx_GOTREF(__pyx_t_16);
22720 7 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22721 7 : __pyx_t_19 = PyList_GET_SIZE(__pyx_t_16);
22722 7 : if (unlikely(__pyx_t_19 < 1)) {
22723 0 : __Pyx_RaiseNeedMoreValuesError(0+__pyx_t_19); __PYX_ERR(0, 82, __pyx_L1_error)
22724 : }
22725 : #if CYTHON_COMPILING_IN_CPYTHON
22726 7 : __pyx_t_6 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_19-1);
22727 7 : ((PyVarObject*)__pyx_t_16)->ob_size--;
22728 : #else
22729 : __pyx_t_6 = PySequence_ITEM(__pyx_t_16, __pyx_t_19-1);
22730 : #endif
22731 7 : __Pyx_GOTREF(__pyx_t_6);
22732 : #if !CYTHON_COMPILING_IN_CPYTHON
22733 : __pyx_t_17 = PySequence_GetSlice(__pyx_t_16, 0, __pyx_t_19-1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 82, __pyx_L1_error)
22734 : __Pyx_GOTREF(__pyx_t_17);
22735 : __Pyx_DECREF(__pyx_t_16);
22736 : __pyx_t_16 = __pyx_t_17; __pyx_t_17 = NULL;
22737 : #else
22738 7 : CYTHON_UNUSED_VAR(__pyx_t_17);
22739 : #endif
22740 7 : __Pyx_XDECREF_SET(__pyx_v_sig_series, ((PyObject*)__pyx_t_16));
22741 7 : __pyx_t_16 = 0;
22742 7 : __Pyx_XDECREF_SET(__pyx_v_last_type, __pyx_t_6);
22743 7 : __pyx_t_6 = 0;
22744 7 : __pyx_t_1 = __pyx_v_sig_series; __Pyx_INCREF(__pyx_t_1);
22745 : __pyx_t_19 = 0;
22746 7 : for (;;) {
22747 : {
22748 7 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
22749 : #if !CYTHON_ASSUME_SAFE_MACROS
22750 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22751 : #endif
22752 7 : if (__pyx_t_19 >= __pyx_temp) break;
22753 : }
22754 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22755 0 : __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22756 : #else
22757 : __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22758 : __Pyx_GOTREF(__pyx_t_6);
22759 : #endif
22760 0 : __Pyx_XDECREF_SET(__pyx_v_sig_type, __pyx_t_6);
22761 0 : __pyx_t_6 = 0;
22762 0 : if (unlikely(__pyx_v_sigindex_node == Py_None)) {
22763 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
22764 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22765 : }
22766 0 : __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_v_sig_type, __pyx_v_sigindex_node, Py_NE)); if (unlikely((__pyx_t_4 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22767 0 : if (__pyx_t_4) {
22768 0 : __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22769 0 : __Pyx_GOTREF(__pyx_t_6);
22770 0 : if (unlikely(__pyx_v_sigindex_node == Py_None)) {
22771 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
22772 : __PYX_ERR(0, 82, __pyx_L1_error)
22773 : }
22774 0 : if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_sig_type, __pyx_t_6) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22775 0 : __Pyx_INCREF(__pyx_t_6);
22776 0 : __Pyx_DECREF_SET(__pyx_v_sigindex_node, __pyx_t_6);
22777 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22778 0 : goto __pyx_L92;
22779 : }
22780 : /*else*/ {
22781 0 : if (unlikely(__pyx_v_sigindex_node == Py_None)) {
22782 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
22783 : __PYX_ERR(0, 82, __pyx_L1_error)
22784 : }
22785 0 : __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_sigindex_node, __pyx_v_sig_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22786 0 : __Pyx_GOTREF(__pyx_t_6);
22787 0 : __pyx_t_16 = __pyx_t_6;
22788 0 : __Pyx_INCREF(__pyx_t_16);
22789 0 : __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
22790 7 : __Pyx_DECREF_SET(__pyx_v_sigindex_node, ((PyObject*)__pyx_t_16));
22791 : __pyx_t_16 = 0;
22792 : }
22793 : __pyx_L92:;
22794 : }
22795 7 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22796 7 : if (unlikely(__pyx_v_sigindex_node == Py_None)) {
22797 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
22798 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22799 : }
22800 7 : if (unlikely((PyDict_SetItem(__pyx_v_sigindex_node, __pyx_v_last_type, __pyx_v_sig) < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22801 : }
22802 2 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
22803 : }
22804 134 : __pyx_t_13 = PyList_New(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 82, __pyx_L1_error)
22805 134 : __Pyx_GOTREF(__pyx_t_13);
22806 134 : __pyx_v_sigindex_matches = ((PyObject*)__pyx_t_13);
22807 134 : __pyx_t_13 = 0;
22808 134 : __pyx_t_13 = PyList_New(1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 82, __pyx_L1_error)
22809 134 : __Pyx_GOTREF(__pyx_t_13);
22810 134 : __Pyx_INCREF(__pyx_v__fused_sigindex);
22811 134 : __Pyx_GIVEREF(__pyx_v__fused_sigindex);
22812 134 : if (__Pyx_PyList_SET_ITEM(__pyx_t_13, 0, __pyx_v__fused_sigindex)) __PYX_ERR(0, 82, __pyx_L1_error);
22813 134 : __pyx_v_sigindex_candidates = ((PyObject*)__pyx_t_13);
22814 134 : __pyx_t_13 = 0;
22815 134 : __pyx_t_13 = __pyx_v_dest_sig; __Pyx_INCREF(__pyx_t_13);
22816 : __pyx_t_14 = 0;
22817 268 : for (;;) {
22818 : {
22819 268 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_13);
22820 : #if !CYTHON_ASSUME_SAFE_MACROS
22821 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22822 : #endif
22823 268 : if (__pyx_t_14 >= __pyx_temp) break;
22824 : }
22825 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22826 134 : __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22827 : #else
22828 : __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_13, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22829 : __Pyx_GOTREF(__pyx_t_1);
22830 : #endif
22831 134 : __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
22832 134 : __pyx_t_1 = 0;
22833 134 : __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22834 134 : __Pyx_GOTREF(__pyx_t_1);
22835 134 : __Pyx_XDECREF_SET(__pyx_v_found_matches, ((PyObject*)__pyx_t_1));
22836 134 : __pyx_t_1 = 0;
22837 134 : __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22838 134 : __Pyx_GOTREF(__pyx_t_1);
22839 134 : __Pyx_XDECREF_SET(__pyx_v_found_candidates, ((PyObject*)__pyx_t_1));
22840 134 : __pyx_t_1 = 0;
22841 134 : __pyx_t_4 = (__pyx_v_dst_type == Py_None);
22842 134 : if (__pyx_t_4) {
22843 0 : __pyx_t_1 = __pyx_v_sigindex_matches; __Pyx_INCREF(__pyx_t_1);
22844 0 : __pyx_t_5 = 0;
22845 0 : for (;;) {
22846 : {
22847 0 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
22848 : #if !CYTHON_ASSUME_SAFE_MACROS
22849 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22850 : #endif
22851 0 : if (__pyx_t_5 >= __pyx_temp) break;
22852 : }
22853 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22854 0 : __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22855 : #else
22856 : __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22857 : __Pyx_GOTREF(__pyx_t_16);
22858 : #endif
22859 0 : __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
22860 0 : __pyx_t_16 = 0;
22861 0 : if (unlikely(__pyx_v_sn == Py_None)) {
22862 0 : PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
22863 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22864 : }
22865 0 : __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22866 0 : __Pyx_GOTREF(__pyx_t_16);
22867 0 : __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_matches, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22868 0 : __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
22869 : }
22870 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22871 0 : __pyx_t_1 = __pyx_v_sigindex_candidates; __Pyx_INCREF(__pyx_t_1);
22872 0 : __pyx_t_5 = 0;
22873 0 : for (;;) {
22874 : {
22875 0 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
22876 : #if !CYTHON_ASSUME_SAFE_MACROS
22877 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22878 : #endif
22879 0 : if (__pyx_t_5 >= __pyx_temp) break;
22880 : }
22881 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22882 0 : __pyx_t_16 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_16); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22883 : #else
22884 : __pyx_t_16 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22885 : __Pyx_GOTREF(__pyx_t_16);
22886 : #endif
22887 0 : __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_16);
22888 0 : __pyx_t_16 = 0;
22889 0 : if (unlikely(__pyx_v_sn == Py_None)) {
22890 0 : PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "values");
22891 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22892 : }
22893 0 : __pyx_t_16 = __Pyx_PyDict_Values(((PyObject*)__pyx_v_sn)); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
22894 0 : __Pyx_GOTREF(__pyx_t_16);
22895 0 : __pyx_t_20 = __Pyx_PyList_Extend(__pyx_v_found_candidates, __pyx_t_16); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22896 0 : __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
22897 : }
22898 0 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22899 0 : goto __pyx_L96;
22900 : }
22901 : /*else*/ {
22902 134 : __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22903 134 : __Pyx_GOTREF(__pyx_t_1);
22904 134 : __Pyx_INCREF(__pyx_v_sigindex_matches);
22905 134 : __Pyx_GIVEREF(__pyx_v_sigindex_matches);
22906 134 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_sigindex_matches)) __PYX_ERR(0, 82, __pyx_L1_error);
22907 134 : __Pyx_INCREF(__pyx_v_sigindex_candidates);
22908 134 : __Pyx_GIVEREF(__pyx_v_sigindex_candidates);
22909 134 : if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_sigindex_candidates)) __PYX_ERR(0, 82, __pyx_L1_error);
22910 134 : __pyx_t_16 = __pyx_t_1; __Pyx_INCREF(__pyx_t_16);
22911 134 : __pyx_t_5 = 0;
22912 268 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22913 670 : for (;;) {
22914 402 : if (__pyx_t_5 >= 2) break;
22915 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22916 268 : __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22917 : #else
22918 : __pyx_t_1 = __Pyx_PySequence_ITEM(__pyx_t_16, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
22919 : __Pyx_GOTREF(__pyx_t_1);
22920 : #endif
22921 268 : __Pyx_XDECREF_SET(__pyx_v_search_list, ((PyObject*)__pyx_t_1));
22922 268 : __pyx_t_1 = 0;
22923 268 : if (unlikely(__pyx_v_search_list == Py_None)) {
22924 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
22925 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22926 : }
22927 268 : __pyx_t_1 = __pyx_v_search_list; __Pyx_INCREF(__pyx_t_1);
22928 : __pyx_t_19 = 0;
22929 402 : for (;;) {
22930 : {
22931 402 : Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_1);
22932 : #if !CYTHON_ASSUME_SAFE_MACROS
22933 : if (unlikely((__pyx_temp < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22934 : #endif
22935 402 : if (__pyx_t_19 >= __pyx_temp) break;
22936 : }
22937 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
22938 134 : __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_19); __Pyx_INCREF(__pyx_t_6); __pyx_t_19++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error)
22939 : #else
22940 : __pyx_t_6 = __Pyx_PySequence_ITEM(__pyx_t_1, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22941 : __Pyx_GOTREF(__pyx_t_6);
22942 : #endif
22943 134 : __Pyx_XDECREF_SET(__pyx_v_sn, __pyx_t_6);
22944 134 : __pyx_t_6 = 0;
22945 134 : if (unlikely(__pyx_v_sn == Py_None)) {
22946 0 : PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get");
22947 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22948 : }
22949 134 : __pyx_t_6 = __Pyx_PyDict_GetItemDefault(((PyObject*)__pyx_v_sn), __pyx_v_dst_type, Py_None); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
22950 134 : __Pyx_GOTREF(__pyx_t_6);
22951 134 : __Pyx_XDECREF_SET(__pyx_v_type_match, __pyx_t_6);
22952 134 : __pyx_t_6 = 0;
22953 134 : __pyx_t_4 = (__pyx_v_type_match != Py_None);
22954 134 : if (__pyx_t_4) {
22955 134 : __pyx_t_20 = __Pyx_PyList_Append(__pyx_v_found_matches, __pyx_v_type_match); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22956 : }
22957 : }
22958 536 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
22959 : }
22960 134 : __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
22961 : }
22962 134 : __pyx_L96:;
22963 134 : __Pyx_INCREF(__pyx_v_found_matches);
22964 134 : __Pyx_DECREF_SET(__pyx_v_sigindex_matches, __pyx_v_found_matches);
22965 134 : __Pyx_INCREF(__pyx_v_found_candidates);
22966 134 : __Pyx_DECREF_SET(__pyx_v_sigindex_candidates, __pyx_v_found_candidates);
22967 134 : __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_matches) != 0);
22968 134 : if (!__pyx_t_2) {
22969 0 : } else {
22970 134 : __pyx_t_4 = __pyx_t_2;
22971 134 : goto __pyx_L111_bool_binop_done;
22972 : }
22973 0 : __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_found_candidates) != 0);
22974 0 : __pyx_t_4 = __pyx_t_2;
22975 134 : __pyx_L111_bool_binop_done:;
22976 134 : __pyx_t_2 = (!__pyx_t_4);
22977 134 : if (__pyx_t_2) {
22978 0 : goto __pyx_L95_break;
22979 : }
22980 : }
22981 134 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
22982 134 : goto __pyx_L113_for_end;
22983 0 : __pyx_L95_break:;
22984 0 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
22985 0 : goto __pyx_L113_for_end;
22986 134 : __pyx_L113_for_end:;
22987 134 : __Pyx_INCREF(__pyx_v_sigindex_matches);
22988 134 : __pyx_v_candidates = __pyx_v_sigindex_matches;
22989 134 : __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
22990 134 : __pyx_t_4 = (!__pyx_t_2);
22991 134 : if (unlikely(__pyx_t_4)) {
22992 0 : __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 82, __pyx_L1_error)
22993 0 : __Pyx_GOTREF(__pyx_t_13);
22994 0 : __Pyx_Raise(__pyx_t_13, 0, 0, 0);
22995 0 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
22996 0 : __PYX_ERR(0, 82, __pyx_L1_error)
22997 : }
22998 134 : __pyx_t_14 = __Pyx_PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 82, __pyx_L1_error)
22999 134 : __pyx_t_4 = (__pyx_t_14 > 1);
23000 134 : if (unlikely(__pyx_t_4)) {
23001 0 : __pyx_t_13 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 82, __pyx_L1_error)
23002 0 : __Pyx_GOTREF(__pyx_t_13);
23003 0 : __Pyx_Raise(__pyx_t_13, 0, 0, 0);
23004 0 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
23005 0 : __PYX_ERR(0, 82, __pyx_L1_error)
23006 : }
23007 : /*else*/ {
23008 134 : __Pyx_XDECREF(__pyx_r);
23009 134 : if (unlikely(__pyx_v_signatures == Py_None)) {
23010 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
23011 0 : __PYX_ERR(0, 82, __pyx_L1_error)
23012 : }
23013 134 : __pyx_t_13 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 82, __pyx_L1_error)
23014 134 : __Pyx_GOTREF(__pyx_t_13);
23015 134 : __pyx_t_16 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_13); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 82, __pyx_L1_error)
23016 134 : __Pyx_GOTREF(__pyx_t_16);
23017 134 : __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
23018 134 : __pyx_r = __pyx_t_16;
23019 134 : __pyx_t_16 = 0;
23020 134 : goto __pyx_L0;
23021 : }
23022 :
23023 : /* function exit code */
23024 0 : __pyx_L1_error:;
23025 0 : __Pyx_XDECREF(__pyx_t_1);
23026 0 : __Pyx_XDECREF(__pyx_t_6);
23027 0 : __Pyx_XDECREF(__pyx_t_13);
23028 0 : __Pyx_XDECREF(__pyx_t_16);
23029 0 : __Pyx_XDECREF(__pyx_t_17);
23030 0 : __Pyx_AddTraceback("scipy.signal._sosfilt.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
23031 0 : __pyx_r = NULL;
23032 134 : __pyx_L0:;
23033 134 : __Pyx_XDECREF(__pyx_v_search_list);
23034 134 : __Pyx_XDECREF(__pyx_v_sigindex_node);
23035 134 : __Pyx_XDECREF(__pyx_v_dest_sig);
23036 134 : __Pyx_XDECREF((PyObject *)__pyx_v_ndarray);
23037 134 : __Pyx_XDECREF(__pyx_v_arg_as_memoryview);
23038 134 : __Pyx_XDECREF(__pyx_v_arg);
23039 134 : __Pyx_XDECREF(__pyx_v_dtype);
23040 134 : __Pyx_XDECREF(__pyx_v_arg_base);
23041 134 : __Pyx_XDECREF(__pyx_v_sig);
23042 134 : __Pyx_XDECREF(__pyx_v_sig_series);
23043 134 : __Pyx_XDECREF(__pyx_v_last_type);
23044 134 : __Pyx_XDECREF(__pyx_v_sig_type);
23045 134 : __Pyx_XDECREF(__pyx_v_sigindex_matches);
23046 134 : __Pyx_XDECREF(__pyx_v_sigindex_candidates);
23047 134 : __Pyx_XDECREF(__pyx_v_dst_type);
23048 134 : __Pyx_XDECREF(__pyx_v_found_matches);
23049 134 : __Pyx_XDECREF(__pyx_v_found_candidates);
23050 134 : __Pyx_XDECREF(__pyx_v_sn);
23051 134 : __Pyx_XDECREF(__pyx_v_type_match);
23052 134 : __Pyx_XDECREF(__pyx_v_candidates);
23053 134 : __Pyx_XDECREF(__pyx_v_kwargs);
23054 134 : __Pyx_XGIVEREF(__pyx_r);
23055 134 : __Pyx_RefNannyFinishContext();
23056 134 : return __pyx_r;
23057 : }
23058 :
23059 : /* Python wrapper */
23060 : static PyObject *__pyx_fuse_0__pyx_pw_5scipy_6signal_8_sosfilt_5_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23061 : static PyMethodDef __pyx_fuse_0__pyx_mdef_5scipy_6signal_8_sosfilt_5_sosfilt = {"__pyx_fuse_0_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_5scipy_6signal_8_sosfilt_5_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23062 16 : static PyObject *__pyx_fuse_0__pyx_pw_5scipy_6signal_8_sosfilt_5_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23063 16 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23064 16 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23065 16 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23066 16 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23067 16 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23068 16 : PyObject* values[3] = {0,0,0};
23069 16 : int __pyx_lineno = 0;
23070 16 : const char *__pyx_filename = NULL;
23071 16 : int __pyx_clineno = 0;
23072 16 : PyObject *__pyx_r = 0;
23073 : __Pyx_RefNannyDeclarations
23074 16 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23075 : #if CYTHON_ASSUME_SAFE_MACROS
23076 16 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23077 : #else
23078 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23079 : #endif
23080 16 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23081 : {
23082 16 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23083 16 : if (__pyx_kwds) {
23084 0 : Py_ssize_t kw_args;
23085 0 : switch (__pyx_nargs) {
23086 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23087 0 : CYTHON_FALLTHROUGH;
23088 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23089 0 : CYTHON_FALLTHROUGH;
23090 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23091 0 : CYTHON_FALLTHROUGH;
23092 0 : case 0: break;
23093 0 : default: goto __pyx_L5_argtuple_error;
23094 : }
23095 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23096 0 : switch (__pyx_nargs) {
23097 0 : case 0:
23098 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23099 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23100 0 : kw_args--;
23101 : }
23102 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23103 0 : else goto __pyx_L5_argtuple_error;
23104 0 : CYTHON_FALLTHROUGH;
23105 : case 1:
23106 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23107 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23108 0 : kw_args--;
23109 : }
23110 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23111 : else {
23112 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23113 : }
23114 0 : CYTHON_FALLTHROUGH;
23115 : case 2:
23116 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
23117 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
23118 0 : kw_args--;
23119 : }
23120 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23121 : else {
23122 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
23123 : }
23124 : }
23125 0 : if (unlikely(kw_args > 0)) {
23126 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
23127 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
23128 : }
23129 16 : } else if (unlikely(__pyx_nargs != 3)) {
23130 0 : goto __pyx_L5_argtuple_error;
23131 : } else {
23132 16 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23133 16 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23134 16 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23135 : }
23136 16 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc_float(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
23137 16 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc_float(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
23138 16 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
23139 : }
23140 16 : goto __pyx_L6_skip;
23141 0 : __pyx_L5_argtuple_error:;
23142 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
23143 16 : __pyx_L6_skip:;
23144 16 : goto __pyx_L4_argument_unpacking_done;
23145 0 : __pyx_L3_error:;
23146 : {
23147 0 : Py_ssize_t __pyx_temp;
23148 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23149 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23150 : }
23151 : }
23152 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23153 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23154 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23155 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
23156 0 : __Pyx_RefNannyFinishContext();
23157 0 : return NULL;
23158 16 : __pyx_L4_argument_unpacking_done:;
23159 16 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_4_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23160 :
23161 : /* function exit code */
23162 16 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23163 16 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23164 16 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23165 : {
23166 16 : Py_ssize_t __pyx_temp;
23167 16 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23168 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23169 : }
23170 : }
23171 : __Pyx_RefNannyFinishContext();
23172 : return __pyx_r;
23173 : }
23174 :
23175 16 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_4_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
23176 16 : PyObject *__pyx_r = NULL;
23177 : __Pyx_RefNannyDeclarations
23178 16 : __Pyx_RefNannySetupContext("__pyx_fuse_0_sosfilt", 1);
23179 :
23180 : /* "scipy/signal/_sosfilt.pyx":88
23181 : * _sosfilt_object(sos, x, zi)
23182 : * else:
23183 : * with nogil: # <<<<<<<<<<<<<<
23184 : * _sosfilt_float(sos, x, zi)
23185 : */
23186 : {
23187 : #ifdef WITH_THREAD
23188 16 : PyThreadState *_save;
23189 16 : _save = NULL;
23190 16 : Py_UNBLOCK_THREADS
23191 16 : __Pyx_FastGIL_Remember();
23192 : #endif
23193 : /*try:*/ {
23194 :
23195 : /* "scipy/signal/_sosfilt.pyx":89
23196 : * else:
23197 : * with nogil:
23198 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
23199 : */
23200 16 : __pyx_fuse_0__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23201 : }
23202 :
23203 : /* "scipy/signal/_sosfilt.pyx":88
23204 : * _sosfilt_object(sos, x, zi)
23205 : * else:
23206 : * with nogil: # <<<<<<<<<<<<<<
23207 : * _sosfilt_float(sos, x, zi)
23208 : */
23209 : /*finally:*/ {
23210 : /*normal exit:*/{
23211 : #ifdef WITH_THREAD
23212 16 : __Pyx_FastGIL_Forget();
23213 16 : Py_BLOCK_THREADS
23214 : #endif
23215 16 : goto __pyx_L5;
23216 : }
23217 16 : __pyx_L5:;
23218 : }
23219 : }
23220 :
23221 : /* "scipy/signal/_sosfilt.pyx":82
23222 : *
23223 : *
23224 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
23225 : * DTYPE_t [:, ::1] x,
23226 : * DTYPE_t [:, :, ::1] zi):
23227 : */
23228 :
23229 : /* function exit code */
23230 16 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23231 16 : __Pyx_XGIVEREF(__pyx_r);
23232 16 : __Pyx_RefNannyFinishContext();
23233 16 : return __pyx_r;
23234 : }
23235 :
23236 : /* Python wrapper */
23237 : static PyObject *__pyx_fuse_1__pyx_pw_5scipy_6signal_8_sosfilt_7_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23238 : static PyMethodDef __pyx_fuse_1__pyx_mdef_5scipy_6signal_8_sosfilt_7_sosfilt = {"__pyx_fuse_1_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_5scipy_6signal_8_sosfilt_7_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23239 0 : static PyObject *__pyx_fuse_1__pyx_pw_5scipy_6signal_8_sosfilt_7_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23240 0 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23241 0 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23242 0 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23243 0 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23244 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23245 0 : PyObject* values[3] = {0,0,0};
23246 0 : int __pyx_lineno = 0;
23247 0 : const char *__pyx_filename = NULL;
23248 0 : int __pyx_clineno = 0;
23249 0 : PyObject *__pyx_r = 0;
23250 : __Pyx_RefNannyDeclarations
23251 0 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23252 : #if CYTHON_ASSUME_SAFE_MACROS
23253 0 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23254 : #else
23255 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23256 : #endif
23257 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23258 : {
23259 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23260 0 : if (__pyx_kwds) {
23261 0 : Py_ssize_t kw_args;
23262 0 : switch (__pyx_nargs) {
23263 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23264 0 : CYTHON_FALLTHROUGH;
23265 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23266 0 : CYTHON_FALLTHROUGH;
23267 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23268 0 : CYTHON_FALLTHROUGH;
23269 0 : case 0: break;
23270 0 : default: goto __pyx_L5_argtuple_error;
23271 : }
23272 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23273 0 : switch (__pyx_nargs) {
23274 0 : case 0:
23275 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23276 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23277 0 : kw_args--;
23278 : }
23279 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23280 0 : else goto __pyx_L5_argtuple_error;
23281 0 : CYTHON_FALLTHROUGH;
23282 : case 1:
23283 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23284 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23285 0 : kw_args--;
23286 : }
23287 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23288 : else {
23289 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23290 : }
23291 0 : CYTHON_FALLTHROUGH;
23292 : case 2:
23293 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
23294 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
23295 0 : kw_args--;
23296 : }
23297 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23298 : else {
23299 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
23300 : }
23301 : }
23302 0 : if (unlikely(kw_args > 0)) {
23303 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
23304 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
23305 : }
23306 0 : } else if (unlikely(__pyx_nargs != 3)) {
23307 0 : goto __pyx_L5_argtuple_error;
23308 : } else {
23309 0 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23310 0 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23311 0 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23312 : }
23313 0 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_float_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
23314 0 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_float_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
23315 0 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_float_complex(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
23316 : }
23317 0 : goto __pyx_L6_skip;
23318 0 : __pyx_L5_argtuple_error:;
23319 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
23320 0 : __pyx_L6_skip:;
23321 0 : goto __pyx_L4_argument_unpacking_done;
23322 0 : __pyx_L3_error:;
23323 : {
23324 0 : Py_ssize_t __pyx_temp;
23325 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23326 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23327 : }
23328 : }
23329 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23330 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23331 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23332 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
23333 0 : __Pyx_RefNannyFinishContext();
23334 0 : return NULL;
23335 0 : __pyx_L4_argument_unpacking_done:;
23336 0 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_6_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23337 :
23338 : /* function exit code */
23339 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23340 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23341 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23342 : {
23343 0 : Py_ssize_t __pyx_temp;
23344 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23345 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23346 : }
23347 : }
23348 : __Pyx_RefNannyFinishContext();
23349 : return __pyx_r;
23350 : }
23351 :
23352 0 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_6_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
23353 0 : PyObject *__pyx_r = NULL;
23354 : __Pyx_RefNannyDeclarations
23355 0 : __Pyx_RefNannySetupContext("__pyx_fuse_1_sosfilt", 1);
23356 :
23357 : /* "scipy/signal/_sosfilt.pyx":88
23358 : * _sosfilt_object(sos, x, zi)
23359 : * else:
23360 : * with nogil: # <<<<<<<<<<<<<<
23361 : * _sosfilt_float(sos, x, zi)
23362 : */
23363 : {
23364 : #ifdef WITH_THREAD
23365 0 : PyThreadState *_save;
23366 0 : _save = NULL;
23367 0 : Py_UNBLOCK_THREADS
23368 0 : __Pyx_FastGIL_Remember();
23369 : #endif
23370 : /*try:*/ {
23371 :
23372 : /* "scipy/signal/_sosfilt.pyx":89
23373 : * else:
23374 : * with nogil:
23375 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
23376 : */
23377 0 : __pyx_fuse_1__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23378 : }
23379 :
23380 : /* "scipy/signal/_sosfilt.pyx":88
23381 : * _sosfilt_object(sos, x, zi)
23382 : * else:
23383 : * with nogil: # <<<<<<<<<<<<<<
23384 : * _sosfilt_float(sos, x, zi)
23385 : */
23386 : /*finally:*/ {
23387 : /*normal exit:*/{
23388 : #ifdef WITH_THREAD
23389 0 : __Pyx_FastGIL_Forget();
23390 0 : Py_BLOCK_THREADS
23391 : #endif
23392 0 : goto __pyx_L5;
23393 : }
23394 0 : __pyx_L5:;
23395 : }
23396 : }
23397 :
23398 : /* "scipy/signal/_sosfilt.pyx":82
23399 : *
23400 : *
23401 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
23402 : * DTYPE_t [:, ::1] x,
23403 : * DTYPE_t [:, :, ::1] zi):
23404 : */
23405 :
23406 : /* function exit code */
23407 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23408 0 : __Pyx_XGIVEREF(__pyx_r);
23409 0 : __Pyx_RefNannyFinishContext();
23410 0 : return __pyx_r;
23411 : }
23412 :
23413 : /* Python wrapper */
23414 : static PyObject *__pyx_fuse_2__pyx_pw_5scipy_6signal_8_sosfilt_9_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23415 : static PyMethodDef __pyx_fuse_2__pyx_mdef_5scipy_6signal_8_sosfilt_9_sosfilt = {"__pyx_fuse_2_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_5scipy_6signal_8_sosfilt_9_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23416 89 : static PyObject *__pyx_fuse_2__pyx_pw_5scipy_6signal_8_sosfilt_9_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23417 89 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23418 89 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23419 89 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23420 89 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23421 89 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23422 89 : PyObject* values[3] = {0,0,0};
23423 89 : int __pyx_lineno = 0;
23424 89 : const char *__pyx_filename = NULL;
23425 89 : int __pyx_clineno = 0;
23426 89 : PyObject *__pyx_r = 0;
23427 : __Pyx_RefNannyDeclarations
23428 89 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23429 : #if CYTHON_ASSUME_SAFE_MACROS
23430 89 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23431 : #else
23432 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23433 : #endif
23434 89 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23435 : {
23436 89 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23437 89 : if (__pyx_kwds) {
23438 0 : Py_ssize_t kw_args;
23439 0 : switch (__pyx_nargs) {
23440 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23441 0 : CYTHON_FALLTHROUGH;
23442 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23443 0 : CYTHON_FALLTHROUGH;
23444 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23445 0 : CYTHON_FALLTHROUGH;
23446 0 : case 0: break;
23447 0 : default: goto __pyx_L5_argtuple_error;
23448 : }
23449 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23450 0 : switch (__pyx_nargs) {
23451 0 : case 0:
23452 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23453 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23454 0 : kw_args--;
23455 : }
23456 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23457 0 : else goto __pyx_L5_argtuple_error;
23458 0 : CYTHON_FALLTHROUGH;
23459 : case 1:
23460 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23461 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23462 0 : kw_args--;
23463 : }
23464 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23465 : else {
23466 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23467 : }
23468 0 : CYTHON_FALLTHROUGH;
23469 : case 2:
23470 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
23471 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
23472 0 : kw_args--;
23473 : }
23474 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23475 : else {
23476 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
23477 : }
23478 : }
23479 0 : if (unlikely(kw_args > 0)) {
23480 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
23481 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
23482 : }
23483 89 : } else if (unlikely(__pyx_nargs != 3)) {
23484 0 : goto __pyx_L5_argtuple_error;
23485 : } else {
23486 89 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23487 89 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23488 89 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23489 : }
23490 89 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
23491 89 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
23492 89 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
23493 : }
23494 89 : goto __pyx_L6_skip;
23495 0 : __pyx_L5_argtuple_error:;
23496 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
23497 89 : __pyx_L6_skip:;
23498 89 : goto __pyx_L4_argument_unpacking_done;
23499 0 : __pyx_L3_error:;
23500 : {
23501 0 : Py_ssize_t __pyx_temp;
23502 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23503 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23504 : }
23505 : }
23506 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23507 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23508 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23509 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
23510 0 : __Pyx_RefNannyFinishContext();
23511 0 : return NULL;
23512 89 : __pyx_L4_argument_unpacking_done:;
23513 89 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_8_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23514 :
23515 : /* function exit code */
23516 89 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23517 89 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23518 89 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23519 : {
23520 89 : Py_ssize_t __pyx_temp;
23521 89 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23522 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23523 : }
23524 : }
23525 : __Pyx_RefNannyFinishContext();
23526 : return __pyx_r;
23527 : }
23528 :
23529 89 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_8_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
23530 89 : PyObject *__pyx_r = NULL;
23531 : __Pyx_RefNannyDeclarations
23532 89 : __Pyx_RefNannySetupContext("__pyx_fuse_2_sosfilt", 1);
23533 :
23534 : /* "scipy/signal/_sosfilt.pyx":88
23535 : * _sosfilt_object(sos, x, zi)
23536 : * else:
23537 : * with nogil: # <<<<<<<<<<<<<<
23538 : * _sosfilt_float(sos, x, zi)
23539 : */
23540 : {
23541 : #ifdef WITH_THREAD
23542 89 : PyThreadState *_save;
23543 89 : _save = NULL;
23544 89 : Py_UNBLOCK_THREADS
23545 89 : __Pyx_FastGIL_Remember();
23546 : #endif
23547 : /*try:*/ {
23548 :
23549 : /* "scipy/signal/_sosfilt.pyx":89
23550 : * else:
23551 : * with nogil:
23552 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
23553 : */
23554 89 : __pyx_fuse_2__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23555 : }
23556 :
23557 : /* "scipy/signal/_sosfilt.pyx":88
23558 : * _sosfilt_object(sos, x, zi)
23559 : * else:
23560 : * with nogil: # <<<<<<<<<<<<<<
23561 : * _sosfilt_float(sos, x, zi)
23562 : */
23563 : /*finally:*/ {
23564 : /*normal exit:*/{
23565 : #ifdef WITH_THREAD
23566 89 : __Pyx_FastGIL_Forget();
23567 89 : Py_BLOCK_THREADS
23568 : #endif
23569 89 : goto __pyx_L5;
23570 : }
23571 89 : __pyx_L5:;
23572 : }
23573 : }
23574 :
23575 : /* "scipy/signal/_sosfilt.pyx":82
23576 : *
23577 : *
23578 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
23579 : * DTYPE_t [:, ::1] x,
23580 : * DTYPE_t [:, :, ::1] zi):
23581 : */
23582 :
23583 : /* function exit code */
23584 89 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23585 89 : __Pyx_XGIVEREF(__pyx_r);
23586 89 : __Pyx_RefNannyFinishContext();
23587 89 : return __pyx_r;
23588 : }
23589 :
23590 : /* Python wrapper */
23591 : static PyObject *__pyx_fuse_3__pyx_pw_5scipy_6signal_8_sosfilt_11_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23592 : static PyMethodDef __pyx_fuse_3__pyx_mdef_5scipy_6signal_8_sosfilt_11_sosfilt = {"__pyx_fuse_3_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_5scipy_6signal_8_sosfilt_11_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23593 28 : static PyObject *__pyx_fuse_3__pyx_pw_5scipy_6signal_8_sosfilt_11_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23594 28 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23595 28 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23596 28 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23597 28 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23598 28 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23599 28 : PyObject* values[3] = {0,0,0};
23600 28 : int __pyx_lineno = 0;
23601 28 : const char *__pyx_filename = NULL;
23602 28 : int __pyx_clineno = 0;
23603 28 : PyObject *__pyx_r = 0;
23604 : __Pyx_RefNannyDeclarations
23605 28 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23606 : #if CYTHON_ASSUME_SAFE_MACROS
23607 28 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23608 : #else
23609 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23610 : #endif
23611 28 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23612 : {
23613 28 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23614 28 : if (__pyx_kwds) {
23615 0 : Py_ssize_t kw_args;
23616 0 : switch (__pyx_nargs) {
23617 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23618 0 : CYTHON_FALLTHROUGH;
23619 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23620 0 : CYTHON_FALLTHROUGH;
23621 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23622 0 : CYTHON_FALLTHROUGH;
23623 0 : case 0: break;
23624 0 : default: goto __pyx_L5_argtuple_error;
23625 : }
23626 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23627 0 : switch (__pyx_nargs) {
23628 0 : case 0:
23629 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23630 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23631 0 : kw_args--;
23632 : }
23633 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23634 0 : else goto __pyx_L5_argtuple_error;
23635 0 : CYTHON_FALLTHROUGH;
23636 : case 1:
23637 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23638 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23639 0 : kw_args--;
23640 : }
23641 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23642 : else {
23643 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23644 : }
23645 0 : CYTHON_FALLTHROUGH;
23646 : case 2:
23647 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
23648 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
23649 0 : kw_args--;
23650 : }
23651 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23652 : else {
23653 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
23654 : }
23655 : }
23656 0 : if (unlikely(kw_args > 0)) {
23657 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
23658 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
23659 : }
23660 28 : } else if (unlikely(__pyx_nargs != 3)) {
23661 0 : goto __pyx_L5_argtuple_error;
23662 : } else {
23663 28 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23664 28 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23665 28 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23666 : }
23667 28 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
23668 28 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
23669 28 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_double_complex(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
23670 : }
23671 28 : goto __pyx_L6_skip;
23672 0 : __pyx_L5_argtuple_error:;
23673 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
23674 28 : __pyx_L6_skip:;
23675 28 : goto __pyx_L4_argument_unpacking_done;
23676 0 : __pyx_L3_error:;
23677 : {
23678 0 : Py_ssize_t __pyx_temp;
23679 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23680 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23681 : }
23682 : }
23683 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23684 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23685 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23686 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
23687 0 : __Pyx_RefNannyFinishContext();
23688 0 : return NULL;
23689 28 : __pyx_L4_argument_unpacking_done:;
23690 28 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_10_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23691 :
23692 : /* function exit code */
23693 28 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23694 28 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23695 28 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23696 : {
23697 28 : Py_ssize_t __pyx_temp;
23698 28 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23699 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23700 : }
23701 : }
23702 : __Pyx_RefNannyFinishContext();
23703 : return __pyx_r;
23704 : }
23705 :
23706 28 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_10_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
23707 28 : PyObject *__pyx_r = NULL;
23708 : __Pyx_RefNannyDeclarations
23709 28 : __Pyx_RefNannySetupContext("__pyx_fuse_3_sosfilt", 1);
23710 :
23711 : /* "scipy/signal/_sosfilt.pyx":88
23712 : * _sosfilt_object(sos, x, zi)
23713 : * else:
23714 : * with nogil: # <<<<<<<<<<<<<<
23715 : * _sosfilt_float(sos, x, zi)
23716 : */
23717 : {
23718 : #ifdef WITH_THREAD
23719 28 : PyThreadState *_save;
23720 28 : _save = NULL;
23721 28 : Py_UNBLOCK_THREADS
23722 28 : __Pyx_FastGIL_Remember();
23723 : #endif
23724 : /*try:*/ {
23725 :
23726 : /* "scipy/signal/_sosfilt.pyx":89
23727 : * else:
23728 : * with nogil:
23729 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
23730 : */
23731 28 : __pyx_fuse_3__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23732 : }
23733 :
23734 : /* "scipy/signal/_sosfilt.pyx":88
23735 : * _sosfilt_object(sos, x, zi)
23736 : * else:
23737 : * with nogil: # <<<<<<<<<<<<<<
23738 : * _sosfilt_float(sos, x, zi)
23739 : */
23740 : /*finally:*/ {
23741 : /*normal exit:*/{
23742 : #ifdef WITH_THREAD
23743 28 : __Pyx_FastGIL_Forget();
23744 28 : Py_BLOCK_THREADS
23745 : #endif
23746 28 : goto __pyx_L5;
23747 : }
23748 28 : __pyx_L5:;
23749 : }
23750 : }
23751 :
23752 : /* "scipy/signal/_sosfilt.pyx":82
23753 : *
23754 : *
23755 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
23756 : * DTYPE_t [:, ::1] x,
23757 : * DTYPE_t [:, :, ::1] zi):
23758 : */
23759 :
23760 : /* function exit code */
23761 28 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23762 28 : __Pyx_XGIVEREF(__pyx_r);
23763 28 : __Pyx_RefNannyFinishContext();
23764 28 : return __pyx_r;
23765 : }
23766 :
23767 : /* Python wrapper */
23768 : static PyObject *__pyx_fuse_4__pyx_pw_5scipy_6signal_8_sosfilt_13_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23769 : static PyMethodDef __pyx_fuse_4__pyx_mdef_5scipy_6signal_8_sosfilt_13_sosfilt = {"__pyx_fuse_4_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_5scipy_6signal_8_sosfilt_13_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23770 0 : static PyObject *__pyx_fuse_4__pyx_pw_5scipy_6signal_8_sosfilt_13_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23771 0 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23772 0 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23773 0 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23774 0 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23775 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23776 0 : PyObject* values[3] = {0,0,0};
23777 0 : int __pyx_lineno = 0;
23778 0 : const char *__pyx_filename = NULL;
23779 0 : int __pyx_clineno = 0;
23780 0 : PyObject *__pyx_r = 0;
23781 : __Pyx_RefNannyDeclarations
23782 0 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23783 : #if CYTHON_ASSUME_SAFE_MACROS
23784 0 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23785 : #else
23786 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23787 : #endif
23788 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23789 : {
23790 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23791 0 : if (__pyx_kwds) {
23792 0 : Py_ssize_t kw_args;
23793 0 : switch (__pyx_nargs) {
23794 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23795 0 : CYTHON_FALLTHROUGH;
23796 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23797 0 : CYTHON_FALLTHROUGH;
23798 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23799 0 : CYTHON_FALLTHROUGH;
23800 0 : case 0: break;
23801 0 : default: goto __pyx_L5_argtuple_error;
23802 : }
23803 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23804 0 : switch (__pyx_nargs) {
23805 0 : case 0:
23806 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23807 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23808 0 : kw_args--;
23809 : }
23810 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23811 0 : else goto __pyx_L5_argtuple_error;
23812 0 : CYTHON_FALLTHROUGH;
23813 : case 1:
23814 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23815 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23816 0 : kw_args--;
23817 : }
23818 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23819 : else {
23820 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23821 : }
23822 0 : CYTHON_FALLTHROUGH;
23823 : case 2:
23824 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
23825 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
23826 0 : kw_args--;
23827 : }
23828 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23829 : else {
23830 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
23831 : }
23832 : }
23833 0 : if (unlikely(kw_args > 0)) {
23834 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
23835 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
23836 : }
23837 0 : } else if (unlikely(__pyx_nargs != 3)) {
23838 0 : goto __pyx_L5_argtuple_error;
23839 : } else {
23840 0 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23841 0 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23842 0 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23843 : }
23844 0 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc_long__double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
23845 0 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc_long__double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
23846 0 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_long__double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
23847 : }
23848 0 : goto __pyx_L6_skip;
23849 0 : __pyx_L5_argtuple_error:;
23850 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
23851 0 : __pyx_L6_skip:;
23852 0 : goto __pyx_L4_argument_unpacking_done;
23853 0 : __pyx_L3_error:;
23854 : {
23855 0 : Py_ssize_t __pyx_temp;
23856 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23857 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23858 : }
23859 : }
23860 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23861 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23862 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23863 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
23864 0 : __Pyx_RefNannyFinishContext();
23865 0 : return NULL;
23866 0 : __pyx_L4_argument_unpacking_done:;
23867 0 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_12_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23868 :
23869 : /* function exit code */
23870 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
23871 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
23872 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
23873 : {
23874 0 : Py_ssize_t __pyx_temp;
23875 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
23876 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
23877 : }
23878 : }
23879 : __Pyx_RefNannyFinishContext();
23880 : return __pyx_r;
23881 : }
23882 :
23883 0 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_12_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
23884 0 : PyObject *__pyx_r = NULL;
23885 : __Pyx_RefNannyDeclarations
23886 0 : __Pyx_RefNannySetupContext("__pyx_fuse_4_sosfilt", 1);
23887 :
23888 : /* "scipy/signal/_sosfilt.pyx":88
23889 : * _sosfilt_object(sos, x, zi)
23890 : * else:
23891 : * with nogil: # <<<<<<<<<<<<<<
23892 : * _sosfilt_float(sos, x, zi)
23893 : */
23894 : {
23895 : #ifdef WITH_THREAD
23896 0 : PyThreadState *_save;
23897 0 : _save = NULL;
23898 0 : Py_UNBLOCK_THREADS
23899 0 : __Pyx_FastGIL_Remember();
23900 : #endif
23901 : /*try:*/ {
23902 :
23903 : /* "scipy/signal/_sosfilt.pyx":89
23904 : * else:
23905 : * with nogil:
23906 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
23907 : */
23908 0 : __pyx_fuse_4__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
23909 : }
23910 :
23911 : /* "scipy/signal/_sosfilt.pyx":88
23912 : * _sosfilt_object(sos, x, zi)
23913 : * else:
23914 : * with nogil: # <<<<<<<<<<<<<<
23915 : * _sosfilt_float(sos, x, zi)
23916 : */
23917 : /*finally:*/ {
23918 : /*normal exit:*/{
23919 : #ifdef WITH_THREAD
23920 0 : __Pyx_FastGIL_Forget();
23921 0 : Py_BLOCK_THREADS
23922 : #endif
23923 0 : goto __pyx_L5;
23924 : }
23925 0 : __pyx_L5:;
23926 : }
23927 : }
23928 :
23929 : /* "scipy/signal/_sosfilt.pyx":82
23930 : *
23931 : *
23932 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
23933 : * DTYPE_t [:, ::1] x,
23934 : * DTYPE_t [:, :, ::1] zi):
23935 : */
23936 :
23937 : /* function exit code */
23938 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
23939 0 : __Pyx_XGIVEREF(__pyx_r);
23940 0 : __Pyx_RefNannyFinishContext();
23941 0 : return __pyx_r;
23942 : }
23943 :
23944 : /* Python wrapper */
23945 : static PyObject *__pyx_fuse_5__pyx_pw_5scipy_6signal_8_sosfilt_15_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
23946 : static PyMethodDef __pyx_fuse_5__pyx_mdef_5scipy_6signal_8_sosfilt_15_sosfilt = {"__pyx_fuse_5_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_5scipy_6signal_8_sosfilt_15_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
23947 0 : static PyObject *__pyx_fuse_5__pyx_pw_5scipy_6signal_8_sosfilt_15_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
23948 0 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
23949 0 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
23950 0 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
23951 0 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
23952 0 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
23953 0 : PyObject* values[3] = {0,0,0};
23954 0 : int __pyx_lineno = 0;
23955 0 : const char *__pyx_filename = NULL;
23956 0 : int __pyx_clineno = 0;
23957 0 : PyObject *__pyx_r = 0;
23958 : __Pyx_RefNannyDeclarations
23959 0 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
23960 : #if CYTHON_ASSUME_SAFE_MACROS
23961 0 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
23962 : #else
23963 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
23964 : #endif
23965 0 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
23966 : {
23967 0 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
23968 0 : if (__pyx_kwds) {
23969 0 : Py_ssize_t kw_args;
23970 0 : switch (__pyx_nargs) {
23971 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
23972 0 : CYTHON_FALLTHROUGH;
23973 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
23974 0 : CYTHON_FALLTHROUGH;
23975 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
23976 0 : CYTHON_FALLTHROUGH;
23977 0 : case 0: break;
23978 0 : default: goto __pyx_L5_argtuple_error;
23979 : }
23980 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
23981 0 : switch (__pyx_nargs) {
23982 0 : case 0:
23983 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
23984 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
23985 0 : kw_args--;
23986 : }
23987 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23988 0 : else goto __pyx_L5_argtuple_error;
23989 0 : CYTHON_FALLTHROUGH;
23990 : case 1:
23991 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
23992 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
23993 0 : kw_args--;
23994 : }
23995 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
23996 : else {
23997 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
23998 : }
23999 0 : CYTHON_FALLTHROUGH;
24000 : case 2:
24001 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
24002 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
24003 0 : kw_args--;
24004 : }
24005 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
24006 : else {
24007 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
24008 : }
24009 : }
24010 0 : if (unlikely(kw_args > 0)) {
24011 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
24012 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
24013 : }
24014 0 : } else if (unlikely(__pyx_nargs != 3)) {
24015 0 : goto __pyx_L5_argtuple_error;
24016 : } else {
24017 0 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
24018 0 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
24019 0 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
24020 : }
24021 0 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_long_double_complex(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
24022 0 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_long_double_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
24023 0 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_long_double_complex(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
24024 : }
24025 0 : goto __pyx_L6_skip;
24026 0 : __pyx_L5_argtuple_error:;
24027 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
24028 0 : __pyx_L6_skip:;
24029 0 : goto __pyx_L4_argument_unpacking_done;
24030 0 : __pyx_L3_error:;
24031 : {
24032 0 : Py_ssize_t __pyx_temp;
24033 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
24034 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
24035 : }
24036 : }
24037 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
24038 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
24039 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
24040 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
24041 0 : __Pyx_RefNannyFinishContext();
24042 0 : return NULL;
24043 0 : __pyx_L4_argument_unpacking_done:;
24044 0 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_14_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
24045 :
24046 : /* function exit code */
24047 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
24048 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
24049 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
24050 : {
24051 0 : Py_ssize_t __pyx_temp;
24052 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
24053 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
24054 : }
24055 : }
24056 : __Pyx_RefNannyFinishContext();
24057 : return __pyx_r;
24058 : }
24059 :
24060 0 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_14_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
24061 0 : PyObject *__pyx_r = NULL;
24062 : __Pyx_RefNannyDeclarations
24063 0 : __Pyx_RefNannySetupContext("__pyx_fuse_5_sosfilt", 1);
24064 :
24065 : /* "scipy/signal/_sosfilt.pyx":88
24066 : * _sosfilt_object(sos, x, zi)
24067 : * else:
24068 : * with nogil: # <<<<<<<<<<<<<<
24069 : * _sosfilt_float(sos, x, zi)
24070 : */
24071 : {
24072 : #ifdef WITH_THREAD
24073 0 : PyThreadState *_save;
24074 0 : _save = NULL;
24075 0 : Py_UNBLOCK_THREADS
24076 0 : __Pyx_FastGIL_Remember();
24077 : #endif
24078 : /*try:*/ {
24079 :
24080 : /* "scipy/signal/_sosfilt.pyx":89
24081 : * else:
24082 : * with nogil:
24083 : * _sosfilt_float(sos, x, zi) # <<<<<<<<<<<<<<
24084 : */
24085 0 : __pyx_fuse_5__pyx_f_5scipy_6signal_8_sosfilt__sosfilt_float(__pyx_v_sos, __pyx_v_x, __pyx_v_zi);
24086 : }
24087 :
24088 : /* "scipy/signal/_sosfilt.pyx":88
24089 : * _sosfilt_object(sos, x, zi)
24090 : * else:
24091 : * with nogil: # <<<<<<<<<<<<<<
24092 : * _sosfilt_float(sos, x, zi)
24093 : */
24094 : /*finally:*/ {
24095 : /*normal exit:*/{
24096 : #ifdef WITH_THREAD
24097 0 : __Pyx_FastGIL_Forget();
24098 0 : Py_BLOCK_THREADS
24099 : #endif
24100 0 : goto __pyx_L5;
24101 : }
24102 0 : __pyx_L5:;
24103 : }
24104 : }
24105 :
24106 : /* "scipy/signal/_sosfilt.pyx":82
24107 : *
24108 : *
24109 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
24110 : * DTYPE_t [:, ::1] x,
24111 : * DTYPE_t [:, :, ::1] zi):
24112 : */
24113 :
24114 : /* function exit code */
24115 0 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24116 0 : __Pyx_XGIVEREF(__pyx_r);
24117 0 : __Pyx_RefNannyFinishContext();
24118 0 : return __pyx_r;
24119 : }
24120 :
24121 : /* Python wrapper */
24122 : static PyObject *__pyx_fuse_6__pyx_pw_5scipy_6signal_8_sosfilt_17_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
24123 : static PyMethodDef __pyx_fuse_6__pyx_mdef_5scipy_6signal_8_sosfilt_17_sosfilt = {"__pyx_fuse_6_sosfilt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_5scipy_6signal_8_sosfilt_17_sosfilt, METH_VARARGS|METH_KEYWORDS, 0};
24124 1 : static PyObject *__pyx_fuse_6__pyx_pw_5scipy_6signal_8_sosfilt_17_sosfilt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
24125 1 : __Pyx_memviewslice __pyx_v_sos = { 0, 0, { 0 }, { 0 }, { 0 } };
24126 1 : __Pyx_memviewslice __pyx_v_x = { 0, 0, { 0 }, { 0 }, { 0 } };
24127 1 : __Pyx_memviewslice __pyx_v_zi = { 0, 0, { 0 }, { 0 }, { 0 } };
24128 1 : CYTHON_UNUSED Py_ssize_t __pyx_nargs;
24129 1 : CYTHON_UNUSED PyObject *const *__pyx_kwvalues;
24130 1 : PyObject* values[3] = {0,0,0};
24131 1 : int __pyx_lineno = 0;
24132 1 : const char *__pyx_filename = NULL;
24133 1 : int __pyx_clineno = 0;
24134 1 : PyObject *__pyx_r = 0;
24135 : __Pyx_RefNannyDeclarations
24136 1 : __Pyx_RefNannySetupContext("_sosfilt (wrapper)", 0);
24137 : #if CYTHON_ASSUME_SAFE_MACROS
24138 1 : __pyx_nargs = PyTuple_GET_SIZE(__pyx_args);
24139 : #else
24140 : __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL;
24141 : #endif
24142 1 : __pyx_kwvalues = __Pyx_KwValues_VARARGS(__pyx_args, __pyx_nargs);
24143 : {
24144 1 : PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sos,&__pyx_n_s_x,&__pyx_n_s_zi,0};
24145 1 : if (__pyx_kwds) {
24146 0 : Py_ssize_t kw_args;
24147 0 : switch (__pyx_nargs) {
24148 0 : case 3: values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
24149 0 : CYTHON_FALLTHROUGH;
24150 0 : case 2: values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
24151 0 : CYTHON_FALLTHROUGH;
24152 0 : case 1: values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
24153 0 : CYTHON_FALLTHROUGH;
24154 0 : case 0: break;
24155 0 : default: goto __pyx_L5_argtuple_error;
24156 : }
24157 0 : kw_args = __Pyx_NumKwargs_VARARGS(__pyx_kwds);
24158 0 : switch (__pyx_nargs) {
24159 0 : case 0:
24160 0 : if (likely((values[0] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_sos)) != 0)) {
24161 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[0]);
24162 0 : kw_args--;
24163 : }
24164 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
24165 0 : else goto __pyx_L5_argtuple_error;
24166 0 : CYTHON_FALLTHROUGH;
24167 : case 1:
24168 0 : if (likely((values[1] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_x)) != 0)) {
24169 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[1]);
24170 0 : kw_args--;
24171 : }
24172 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
24173 : else {
24174 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 1); __PYX_ERR(0, 82, __pyx_L3_error)
24175 : }
24176 0 : CYTHON_FALLTHROUGH;
24177 : case 2:
24178 0 : if (likely((values[2] = __Pyx_GetKwValue_VARARGS(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_zi)) != 0)) {
24179 0 : (void)__Pyx_Arg_NewRef_VARARGS(values[2]);
24180 0 : kw_args--;
24181 : }
24182 0 : else if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 82, __pyx_L3_error)
24183 : else {
24184 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, 2); __PYX_ERR(0, 82, __pyx_L3_error)
24185 : }
24186 : }
24187 0 : if (unlikely(kw_args > 0)) {
24188 0 : const Py_ssize_t kwd_pos_args = __pyx_nargs;
24189 0 : if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "_sosfilt") < 0)) __PYX_ERR(0, 82, __pyx_L3_error)
24190 : }
24191 1 : } else if (unlikely(__pyx_nargs != 3)) {
24192 0 : goto __pyx_L5_argtuple_error;
24193 : } else {
24194 1 : values[0] = __Pyx_Arg_VARARGS(__pyx_args, 0);
24195 1 : values[1] = __Pyx_Arg_VARARGS(__pyx_args, 1);
24196 1 : values[2] = __Pyx_Arg_VARARGS(__pyx_args, 2);
24197 : }
24198 1 : __pyx_v_sos = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_sos.memview)) __PYX_ERR(0, 82, __pyx_L3_error)
24199 1 : __pyx_v_x = __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_x.memview)) __PYX_ERR(0, 83, __pyx_L3_error)
24200 1 : __pyx_v_zi = __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_zi.memview)) __PYX_ERR(0, 84, __pyx_L3_error)
24201 : }
24202 1 : goto __pyx_L6_skip;
24203 0 : __pyx_L5_argtuple_error:;
24204 0 : __Pyx_RaiseArgtupleInvalid("_sosfilt", 1, 3, 3, __pyx_nargs); __PYX_ERR(0, 82, __pyx_L3_error)
24205 1 : __pyx_L6_skip:;
24206 1 : goto __pyx_L4_argument_unpacking_done;
24207 0 : __pyx_L3_error:;
24208 : {
24209 0 : Py_ssize_t __pyx_temp;
24210 0 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
24211 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
24212 : }
24213 : }
24214 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
24215 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
24216 0 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
24217 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
24218 0 : __Pyx_RefNannyFinishContext();
24219 0 : return NULL;
24220 1 : __pyx_L4_argument_unpacking_done:;
24221 1 : __pyx_r = __pyx_pf_5scipy_6signal_8_sosfilt_16_sosfilt(__pyx_self, __pyx_v_sos, __pyx_v_x, __pyx_v_zi);
24222 :
24223 : /* function exit code */
24224 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_sos, 1);
24225 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_x, 1);
24226 1 : __PYX_XCLEAR_MEMVIEW(&__pyx_v_zi, 1);
24227 : {
24228 1 : Py_ssize_t __pyx_temp;
24229 1 : for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) {
24230 : __Pyx_Arg_XDECREF_VARARGS(values[__pyx_temp]);
24231 : }
24232 : }
24233 : __Pyx_RefNannyFinishContext();
24234 : return __pyx_r;
24235 : }
24236 :
24237 1 : static PyObject *__pyx_pf_5scipy_6signal_8_sosfilt_16_sosfilt(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_sos, __Pyx_memviewslice __pyx_v_x, __Pyx_memviewslice __pyx_v_zi) {
24238 1 : PyObject *__pyx_r = NULL;
24239 : __Pyx_RefNannyDeclarations
24240 1 : PyObject *__pyx_t_1 = NULL;
24241 1 : PyObject *__pyx_t_2 = NULL;
24242 1 : PyObject *__pyx_t_3 = NULL;
24243 1 : PyObject *__pyx_t_4 = NULL;
24244 1 : PyObject *__pyx_t_5 = NULL;
24245 1 : PyObject *__pyx_t_6 = NULL;
24246 1 : unsigned int __pyx_t_7;
24247 1 : int __pyx_lineno = 0;
24248 1 : const char *__pyx_filename = NULL;
24249 1 : int __pyx_clineno = 0;
24250 1 : __Pyx_RefNannySetupContext("__pyx_fuse_6_sosfilt", 1);
24251 :
24252 : /* "scipy/signal/_sosfilt.pyx":86
24253 : * DTYPE_t [:, :, ::1] zi):
24254 : * if DTYPE_t is object:
24255 : * _sosfilt_object(sos, x, zi) # <<<<<<<<<<<<<<
24256 : * else:
24257 : * with nogil:
24258 : */
24259 1 : __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sosfilt_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 86, __pyx_L1_error)
24260 1 : __Pyx_GOTREF(__pyx_t_2);
24261 1 : __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_sos, 2, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
24262 1 : __Pyx_GOTREF(__pyx_t_3);
24263 1 : __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_x, 2, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 86, __pyx_L1_error)
24264 1 : __Pyx_GOTREF(__pyx_t_4);
24265 1 : __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_zi, 3, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 86, __pyx_L1_error)
24266 1 : __Pyx_GOTREF(__pyx_t_5);
24267 1 : __pyx_t_6 = NULL;
24268 1 : __pyx_t_7 = 0;
24269 : #if CYTHON_UNPACK_METHODS
24270 1 : if (unlikely(PyMethod_Check(__pyx_t_2))) {
24271 0 : __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
24272 0 : if (likely(__pyx_t_6)) {
24273 0 : PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
24274 0 : __Pyx_INCREF(__pyx_t_6);
24275 0 : __Pyx_INCREF(function);
24276 0 : __Pyx_DECREF_SET(__pyx_t_2, function);
24277 : __pyx_t_7 = 1;
24278 : }
24279 : }
24280 : #endif
24281 : {
24282 1 : PyObject *__pyx_callargs[4] = {__pyx_t_6, __pyx_t_3, __pyx_t_4, __pyx_t_5};
24283 1 : __pyx_t_1 = __Pyx_PyObject_FastCall(__pyx_t_2, __pyx_callargs+1-__pyx_t_7, 3+__pyx_t_7);
24284 1 : __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
24285 1 : __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
24286 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
24287 1 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
24288 1 : if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
24289 1 : __Pyx_GOTREF(__pyx_t_1);
24290 1 : __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
24291 : }
24292 1 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
24293 :
24294 : /* "scipy/signal/_sosfilt.pyx":82
24295 : *
24296 : *
24297 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
24298 : * DTYPE_t [:, ::1] x,
24299 : * DTYPE_t [:, :, ::1] zi):
24300 : */
24301 :
24302 : /* function exit code */
24303 1 : __pyx_r = Py_None; __Pyx_INCREF(Py_None);
24304 1 : goto __pyx_L0;
24305 0 : __pyx_L1_error:;
24306 0 : __Pyx_XDECREF(__pyx_t_1);
24307 0 : __Pyx_XDECREF(__pyx_t_2);
24308 0 : __Pyx_XDECREF(__pyx_t_3);
24309 0 : __Pyx_XDECREF(__pyx_t_4);
24310 0 : __Pyx_XDECREF(__pyx_t_5);
24311 0 : __Pyx_XDECREF(__pyx_t_6);
24312 0 : __Pyx_AddTraceback("scipy.signal._sosfilt._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
24313 0 : __pyx_r = NULL;
24314 1 : __pyx_L0:;
24315 1 : __Pyx_XGIVEREF(__pyx_r);
24316 1 : __Pyx_RefNannyFinishContext();
24317 1 : return __pyx_r;
24318 : }
24319 : static struct __pyx_vtabstruct_array __pyx_vtable_array;
24320 :
24321 0 : static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) {
24322 0 : struct __pyx_array_obj *p;
24323 0 : PyObject *o;
24324 : #if CYTHON_COMPILING_IN_LIMITED_API
24325 : allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
24326 : o = alloc_func(t, 0);
24327 : #else
24328 0 : if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
24329 0 : o = (*t->tp_alloc)(t, 0);
24330 : } else {
24331 0 : o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
24332 : }
24333 0 : if (unlikely(!o)) return 0;
24334 : #endif
24335 0 : p = ((struct __pyx_array_obj *)o);
24336 0 : p->__pyx_vtab = __pyx_vtabptr_array;
24337 0 : p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None);
24338 0 : p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None);
24339 0 : if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad;
24340 : return o;
24341 0 : bad:
24342 0 : Py_DECREF(o); o = 0;
24343 : return NULL;
24344 : }
24345 :
24346 0 : static void __pyx_tp_dealloc_array(PyObject *o) {
24347 0 : struct __pyx_array_obj *p = (struct __pyx_array_obj *)o;
24348 : #if CYTHON_USE_TP_FINALIZE
24349 0 : if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) {
24350 0 : if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_array) {
24351 0 : if (PyObject_CallFinalizerFromDealloc(o)) return;
24352 : }
24353 : }
24354 : #endif
24355 : {
24356 0 : PyObject *etype, *eval, *etb;
24357 0 : PyErr_Fetch(&etype, &eval, &etb);
24358 0 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
24359 0 : __pyx_array___dealloc__(o);
24360 0 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
24361 0 : PyErr_Restore(etype, eval, etb);
24362 : }
24363 0 : Py_CLEAR(p->mode);
24364 0 : Py_CLEAR(p->_format);
24365 : #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
24366 0 : (*Py_TYPE(o)->tp_free)(o);
24367 : #else
24368 : {
24369 : freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
24370 : if (tp_free) tp_free(o);
24371 : }
24372 : #endif
24373 : }
24374 0 : static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) {
24375 0 : PyObject *r;
24376 0 : PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
24377 0 : r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
24378 0 : Py_DECREF(x);
24379 : return r;
24380 : }
24381 :
24382 0 : static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) {
24383 0 : if (v) {
24384 0 : return __pyx_array___setitem__(o, i, v);
24385 : }
24386 : else {
24387 0 : __Pyx_TypeName o_type_name;
24388 0 : o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
24389 0 : PyErr_Format(PyExc_NotImplementedError,
24390 : "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
24391 0 : __Pyx_DECREF_TypeName(o_type_name);
24392 0 : return -1;
24393 : }
24394 : }
24395 :
24396 0 : static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) {
24397 0 : PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n);
24398 0 : if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
24399 0 : PyErr_Clear();
24400 0 : v = __pyx_array___getattr__(o, n);
24401 : }
24402 0 : return v;
24403 : }
24404 :
24405 0 : static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) {
24406 0 : return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o);
24407 : }
24408 :
24409 : static PyMethodDef __pyx_methods_array[] = {
24410 : {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0},
24411 : {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24412 : {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_array_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24413 : {0, 0, 0, 0}
24414 : };
24415 :
24416 : static struct PyGetSetDef __pyx_getsets_array[] = {
24417 : {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0},
24418 : {0, 0, 0, 0, 0}
24419 : };
24420 : #if CYTHON_USE_TYPE_SPECS
24421 : #if !CYTHON_COMPILING_IN_LIMITED_API
24422 :
24423 : static PyBufferProcs __pyx_tp_as_buffer_array = {
24424 : #if PY_MAJOR_VERSION < 3
24425 : 0, /*bf_getreadbuffer*/
24426 : #endif
24427 : #if PY_MAJOR_VERSION < 3
24428 : 0, /*bf_getwritebuffer*/
24429 : #endif
24430 : #if PY_MAJOR_VERSION < 3
24431 : 0, /*bf_getsegcount*/
24432 : #endif
24433 : #if PY_MAJOR_VERSION < 3
24434 : 0, /*bf_getcharbuffer*/
24435 : #endif
24436 : __pyx_array_getbuffer, /*bf_getbuffer*/
24437 : 0, /*bf_releasebuffer*/
24438 : };
24439 : #endif
24440 : static PyType_Slot __pyx_type___pyx_array_slots[] = {
24441 : {Py_tp_dealloc, (void *)__pyx_tp_dealloc_array},
24442 : {Py_sq_length, (void *)__pyx_array___len__},
24443 : {Py_sq_item, (void *)__pyx_sq_item_array},
24444 : {Py_mp_length, (void *)__pyx_array___len__},
24445 : {Py_mp_subscript, (void *)__pyx_array___getitem__},
24446 : {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_array},
24447 : {Py_tp_getattro, (void *)__pyx_tp_getattro_array},
24448 : #if defined(Py_bf_getbuffer)
24449 : {Py_bf_getbuffer, (void *)__pyx_array_getbuffer},
24450 : #endif
24451 : {Py_tp_methods, (void *)__pyx_methods_array},
24452 : {Py_tp_getset, (void *)__pyx_getsets_array},
24453 : {Py_tp_new, (void *)__pyx_tp_new_array},
24454 : {0, 0},
24455 : };
24456 : static PyType_Spec __pyx_type___pyx_array_spec = {
24457 : "scipy.signal._sosfilt.array",
24458 : sizeof(struct __pyx_array_obj),
24459 : 0,
24460 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE,
24461 : __pyx_type___pyx_array_slots,
24462 : };
24463 : #else
24464 :
24465 : static PySequenceMethods __pyx_tp_as_sequence_array = {
24466 : __pyx_array___len__, /*sq_length*/
24467 : 0, /*sq_concat*/
24468 : 0, /*sq_repeat*/
24469 : __pyx_sq_item_array, /*sq_item*/
24470 : 0, /*sq_slice*/
24471 : 0, /*sq_ass_item*/
24472 : 0, /*sq_ass_slice*/
24473 : 0, /*sq_contains*/
24474 : 0, /*sq_inplace_concat*/
24475 : 0, /*sq_inplace_repeat*/
24476 : };
24477 :
24478 : static PyMappingMethods __pyx_tp_as_mapping_array = {
24479 : __pyx_array___len__, /*mp_length*/
24480 : __pyx_array___getitem__, /*mp_subscript*/
24481 : __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/
24482 : };
24483 :
24484 : static PyBufferProcs __pyx_tp_as_buffer_array = {
24485 : #if PY_MAJOR_VERSION < 3
24486 : 0, /*bf_getreadbuffer*/
24487 : #endif
24488 : #if PY_MAJOR_VERSION < 3
24489 : 0, /*bf_getwritebuffer*/
24490 : #endif
24491 : #if PY_MAJOR_VERSION < 3
24492 : 0, /*bf_getsegcount*/
24493 : #endif
24494 : #if PY_MAJOR_VERSION < 3
24495 : 0, /*bf_getcharbuffer*/
24496 : #endif
24497 : __pyx_array_getbuffer, /*bf_getbuffer*/
24498 : 0, /*bf_releasebuffer*/
24499 : };
24500 :
24501 : static PyTypeObject __pyx_type___pyx_array = {
24502 : PyVarObject_HEAD_INIT(0, 0)
24503 : "scipy.signal._sosfilt.""array", /*tp_name*/
24504 : sizeof(struct __pyx_array_obj), /*tp_basicsize*/
24505 : 0, /*tp_itemsize*/
24506 : __pyx_tp_dealloc_array, /*tp_dealloc*/
24507 : #if PY_VERSION_HEX < 0x030800b4
24508 : 0, /*tp_print*/
24509 : #endif
24510 : #if PY_VERSION_HEX >= 0x030800b4
24511 : 0, /*tp_vectorcall_offset*/
24512 : #endif
24513 : 0, /*tp_getattr*/
24514 : 0, /*tp_setattr*/
24515 : #if PY_MAJOR_VERSION < 3
24516 : 0, /*tp_compare*/
24517 : #endif
24518 : #if PY_MAJOR_VERSION >= 3
24519 : 0, /*tp_as_async*/
24520 : #endif
24521 : 0, /*tp_repr*/
24522 : 0, /*tp_as_number*/
24523 : &__pyx_tp_as_sequence_array, /*tp_as_sequence*/
24524 : &__pyx_tp_as_mapping_array, /*tp_as_mapping*/
24525 : 0, /*tp_hash*/
24526 : 0, /*tp_call*/
24527 : 0, /*tp_str*/
24528 : __pyx_tp_getattro_array, /*tp_getattro*/
24529 : 0, /*tp_setattro*/
24530 : &__pyx_tp_as_buffer_array, /*tp_as_buffer*/
24531 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
24532 : 0, /*tp_doc*/
24533 : 0, /*tp_traverse*/
24534 : 0, /*tp_clear*/
24535 : 0, /*tp_richcompare*/
24536 : 0, /*tp_weaklistoffset*/
24537 : 0, /*tp_iter*/
24538 : 0, /*tp_iternext*/
24539 : __pyx_methods_array, /*tp_methods*/
24540 : 0, /*tp_members*/
24541 : __pyx_getsets_array, /*tp_getset*/
24542 : 0, /*tp_base*/
24543 : 0, /*tp_dict*/
24544 : 0, /*tp_descr_get*/
24545 : 0, /*tp_descr_set*/
24546 : #if !CYTHON_USE_TYPE_SPECS
24547 : 0, /*tp_dictoffset*/
24548 : #endif
24549 : 0, /*tp_init*/
24550 : 0, /*tp_alloc*/
24551 : __pyx_tp_new_array, /*tp_new*/
24552 : 0, /*tp_free*/
24553 : 0, /*tp_is_gc*/
24554 : 0, /*tp_bases*/
24555 : 0, /*tp_mro*/
24556 : 0, /*tp_cache*/
24557 : 0, /*tp_subclasses*/
24558 : 0, /*tp_weaklist*/
24559 : 0, /*tp_del*/
24560 : 0, /*tp_version_tag*/
24561 : #if PY_VERSION_HEX >= 0x030400a1
24562 : #if CYTHON_USE_TP_FINALIZE
24563 : 0, /*tp_finalize*/
24564 : #else
24565 : NULL, /*tp_finalize*/
24566 : #endif
24567 : #endif
24568 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
24569 : 0, /*tp_vectorcall*/
24570 : #endif
24571 : #if __PYX_NEED_TP_PRINT_SLOT == 1
24572 : 0, /*tp_print*/
24573 : #endif
24574 : #if PY_VERSION_HEX >= 0x030C0000
24575 : 0, /*tp_watched*/
24576 : #endif
24577 : #if PY_VERSION_HEX >= 0x030d00A4
24578 : 0, /*tp_versions_used*/
24579 : #endif
24580 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
24581 : 0, /*tp_pypy_flags*/
24582 : #endif
24583 : };
24584 : #endif
24585 :
24586 5 : static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
24587 5 : struct __pyx_MemviewEnum_obj *p;
24588 5 : PyObject *o;
24589 : #if CYTHON_COMPILING_IN_LIMITED_API
24590 : allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
24591 : o = alloc_func(t, 0);
24592 : #else
24593 5 : if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
24594 5 : o = (*t->tp_alloc)(t, 0);
24595 : } else {
24596 0 : o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
24597 : }
24598 5 : if (unlikely(!o)) return 0;
24599 : #endif
24600 5 : p = ((struct __pyx_MemviewEnum_obj *)o);
24601 5 : p->name = Py_None; Py_INCREF(Py_None);
24602 : return o;
24603 : }
24604 :
24605 0 : static void __pyx_tp_dealloc_Enum(PyObject *o) {
24606 0 : struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
24607 : #if CYTHON_USE_TP_FINALIZE
24608 0 : if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
24609 0 : if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_Enum) {
24610 0 : if (PyObject_CallFinalizerFromDealloc(o)) return;
24611 : }
24612 : }
24613 : #endif
24614 0 : PyObject_GC_UnTrack(o);
24615 0 : Py_CLEAR(p->name);
24616 : #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
24617 0 : (*Py_TYPE(o)->tp_free)(o);
24618 : #else
24619 : {
24620 : freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
24621 : if (tp_free) tp_free(o);
24622 : }
24623 : #endif
24624 : }
24625 :
24626 175 : static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) {
24627 175 : int e;
24628 175 : struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
24629 175 : if (p->name) {
24630 175 : e = (*v)(p->name, a); if (e) return e;
24631 : }
24632 : return 0;
24633 : }
24634 :
24635 0 : static int __pyx_tp_clear_Enum(PyObject *o) {
24636 0 : PyObject* tmp;
24637 0 : struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o;
24638 0 : tmp = ((PyObject*)p->name);
24639 0 : p->name = Py_None; Py_INCREF(Py_None);
24640 0 : Py_XDECREF(tmp);
24641 0 : return 0;
24642 : }
24643 :
24644 0 : static PyObject *__pyx_specialmethod___pyx_MemviewEnum___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
24645 0 : return __pyx_MemviewEnum___repr__(self);
24646 : }
24647 :
24648 : static PyMethodDef __pyx_methods_Enum[] = {
24649 : {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_MemviewEnum___repr__, METH_NOARGS|METH_COEXIST, 0},
24650 : {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24651 : {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24652 : {0, 0, 0, 0}
24653 : };
24654 : #if CYTHON_USE_TYPE_SPECS
24655 : static PyType_Slot __pyx_type___pyx_MemviewEnum_slots[] = {
24656 : {Py_tp_dealloc, (void *)__pyx_tp_dealloc_Enum},
24657 : {Py_tp_repr, (void *)__pyx_MemviewEnum___repr__},
24658 : {Py_tp_traverse, (void *)__pyx_tp_traverse_Enum},
24659 : {Py_tp_clear, (void *)__pyx_tp_clear_Enum},
24660 : {Py_tp_methods, (void *)__pyx_methods_Enum},
24661 : {Py_tp_init, (void *)__pyx_MemviewEnum___init__},
24662 : {Py_tp_new, (void *)__pyx_tp_new_Enum},
24663 : {0, 0},
24664 : };
24665 : static PyType_Spec __pyx_type___pyx_MemviewEnum_spec = {
24666 : "scipy.signal._sosfilt.Enum",
24667 : sizeof(struct __pyx_MemviewEnum_obj),
24668 : 0,
24669 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
24670 : __pyx_type___pyx_MemviewEnum_slots,
24671 : };
24672 : #else
24673 :
24674 : static PyTypeObject __pyx_type___pyx_MemviewEnum = {
24675 : PyVarObject_HEAD_INIT(0, 0)
24676 : "scipy.signal._sosfilt.""Enum", /*tp_name*/
24677 : sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/
24678 : 0, /*tp_itemsize*/
24679 : __pyx_tp_dealloc_Enum, /*tp_dealloc*/
24680 : #if PY_VERSION_HEX < 0x030800b4
24681 : 0, /*tp_print*/
24682 : #endif
24683 : #if PY_VERSION_HEX >= 0x030800b4
24684 : 0, /*tp_vectorcall_offset*/
24685 : #endif
24686 : 0, /*tp_getattr*/
24687 : 0, /*tp_setattr*/
24688 : #if PY_MAJOR_VERSION < 3
24689 : 0, /*tp_compare*/
24690 : #endif
24691 : #if PY_MAJOR_VERSION >= 3
24692 : 0, /*tp_as_async*/
24693 : #endif
24694 : __pyx_MemviewEnum___repr__, /*tp_repr*/
24695 : 0, /*tp_as_number*/
24696 : 0, /*tp_as_sequence*/
24697 : 0, /*tp_as_mapping*/
24698 : 0, /*tp_hash*/
24699 : 0, /*tp_call*/
24700 : 0, /*tp_str*/
24701 : 0, /*tp_getattro*/
24702 : 0, /*tp_setattro*/
24703 : 0, /*tp_as_buffer*/
24704 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
24705 : 0, /*tp_doc*/
24706 : __pyx_tp_traverse_Enum, /*tp_traverse*/
24707 : __pyx_tp_clear_Enum, /*tp_clear*/
24708 : 0, /*tp_richcompare*/
24709 : 0, /*tp_weaklistoffset*/
24710 : 0, /*tp_iter*/
24711 : 0, /*tp_iternext*/
24712 : __pyx_methods_Enum, /*tp_methods*/
24713 : 0, /*tp_members*/
24714 : 0, /*tp_getset*/
24715 : 0, /*tp_base*/
24716 : 0, /*tp_dict*/
24717 : 0, /*tp_descr_get*/
24718 : 0, /*tp_descr_set*/
24719 : #if !CYTHON_USE_TYPE_SPECS
24720 : 0, /*tp_dictoffset*/
24721 : #endif
24722 : __pyx_MemviewEnum___init__, /*tp_init*/
24723 : 0, /*tp_alloc*/
24724 : __pyx_tp_new_Enum, /*tp_new*/
24725 : 0, /*tp_free*/
24726 : 0, /*tp_is_gc*/
24727 : 0, /*tp_bases*/
24728 : 0, /*tp_mro*/
24729 : 0, /*tp_cache*/
24730 : 0, /*tp_subclasses*/
24731 : 0, /*tp_weaklist*/
24732 : 0, /*tp_del*/
24733 : 0, /*tp_version_tag*/
24734 : #if PY_VERSION_HEX >= 0x030400a1
24735 : #if CYTHON_USE_TP_FINALIZE
24736 : 0, /*tp_finalize*/
24737 : #else
24738 : NULL, /*tp_finalize*/
24739 : #endif
24740 : #endif
24741 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
24742 : 0, /*tp_vectorcall*/
24743 : #endif
24744 : #if __PYX_NEED_TP_PRINT_SLOT == 1
24745 : 0, /*tp_print*/
24746 : #endif
24747 : #if PY_VERSION_HEX >= 0x030C0000
24748 : 0, /*tp_watched*/
24749 : #endif
24750 : #if PY_VERSION_HEX >= 0x030d00A4
24751 : 0, /*tp_versions_used*/
24752 : #endif
24753 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
24754 : 0, /*tp_pypy_flags*/
24755 : #endif
24756 : };
24757 : #endif
24758 : static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview;
24759 :
24760 408 : static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) {
24761 408 : struct __pyx_memoryview_obj *p;
24762 408 : PyObject *o;
24763 : #if CYTHON_COMPILING_IN_LIMITED_API
24764 : allocfunc alloc_func = (allocfunc)PyType_GetSlot(t, Py_tp_alloc);
24765 : o = alloc_func(t, 0);
24766 : #else
24767 408 : if (likely(!__Pyx_PyType_HasFeature(t, Py_TPFLAGS_IS_ABSTRACT))) {
24768 408 : o = (*t->tp_alloc)(t, 0);
24769 : } else {
24770 0 : o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0);
24771 : }
24772 408 : if (unlikely(!o)) return 0;
24773 : #endif
24774 408 : p = ((struct __pyx_memoryview_obj *)o);
24775 408 : p->__pyx_vtab = __pyx_vtabptr_memoryview;
24776 408 : p->obj = Py_None; Py_INCREF(Py_None);
24777 408 : p->_size = Py_None; Py_INCREF(Py_None);
24778 408 : p->_array_interface = Py_None; Py_INCREF(Py_None);
24779 408 : p->view.obj = NULL;
24780 408 : if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad;
24781 : return o;
24782 0 : bad:
24783 0 : Py_DECREF(o); o = 0;
24784 : return NULL;
24785 : }
24786 :
24787 408 : static void __pyx_tp_dealloc_memoryview(PyObject *o) {
24788 408 : struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
24789 : #if CYTHON_USE_TP_FINALIZE
24790 408 : if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
24791 0 : if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc_memoryview) {
24792 0 : if (PyObject_CallFinalizerFromDealloc(o)) return;
24793 : }
24794 : }
24795 : #endif
24796 408 : PyObject_GC_UnTrack(o);
24797 : {
24798 408 : PyObject *etype, *eval, *etb;
24799 408 : PyErr_Fetch(&etype, &eval, &etb);
24800 408 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
24801 408 : __pyx_memoryview___dealloc__(o);
24802 408 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
24803 408 : PyErr_Restore(etype, eval, etb);
24804 : }
24805 408 : Py_CLEAR(p->obj);
24806 408 : Py_CLEAR(p->_size);
24807 408 : Py_CLEAR(p->_array_interface);
24808 : #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
24809 408 : (*Py_TYPE(o)->tp_free)(o);
24810 : #else
24811 : {
24812 : freefunc tp_free = (freefunc)PyType_GetSlot(Py_TYPE(o), Py_tp_free);
24813 : if (tp_free) tp_free(o);
24814 : }
24815 : #endif
24816 : }
24817 :
24818 0 : static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) {
24819 0 : int e;
24820 0 : struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
24821 0 : if (p->obj) {
24822 0 : e = (*v)(p->obj, a); if (e) return e;
24823 : }
24824 0 : if (p->_size) {
24825 0 : e = (*v)(p->_size, a); if (e) return e;
24826 : }
24827 0 : if (p->_array_interface) {
24828 0 : e = (*v)(p->_array_interface, a); if (e) return e;
24829 : }
24830 0 : if (p->view.obj) {
24831 0 : e = (*v)(p->view.obj, a); if (e) return e;
24832 : }
24833 : return 0;
24834 : }
24835 :
24836 0 : static int __pyx_tp_clear_memoryview(PyObject *o) {
24837 0 : PyObject* tmp;
24838 0 : struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o;
24839 0 : tmp = ((PyObject*)p->obj);
24840 0 : p->obj = Py_None; Py_INCREF(Py_None);
24841 0 : Py_XDECREF(tmp);
24842 0 : tmp = ((PyObject*)p->_size);
24843 0 : p->_size = Py_None; Py_INCREF(Py_None);
24844 0 : Py_XDECREF(tmp);
24845 0 : tmp = ((PyObject*)p->_array_interface);
24846 0 : p->_array_interface = Py_None; Py_INCREF(Py_None);
24847 0 : Py_XDECREF(tmp);
24848 0 : Py_CLEAR(p->view.obj);
24849 0 : return 0;
24850 : }
24851 0 : static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) {
24852 0 : PyObject *r;
24853 0 : PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
24854 0 : r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
24855 0 : Py_DECREF(x);
24856 : return r;
24857 : }
24858 :
24859 0 : static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) {
24860 0 : if (v) {
24861 0 : return __pyx_memoryview___setitem__(o, i, v);
24862 : }
24863 : else {
24864 0 : __Pyx_TypeName o_type_name;
24865 0 : o_type_name = __Pyx_PyType_GetName(Py_TYPE(o));
24866 0 : PyErr_Format(PyExc_NotImplementedError,
24867 : "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);
24868 0 : __Pyx_DECREF_TypeName(o_type_name);
24869 0 : return -1;
24870 : }
24871 : }
24872 :
24873 0 : static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) {
24874 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o);
24875 : }
24876 :
24877 0 : static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) {
24878 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o);
24879 : }
24880 :
24881 0 : static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) {
24882 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o);
24883 : }
24884 :
24885 0 : static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) {
24886 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o);
24887 : }
24888 :
24889 0 : static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) {
24890 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o);
24891 : }
24892 :
24893 0 : static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) {
24894 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o);
24895 : }
24896 :
24897 0 : static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) {
24898 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o);
24899 : }
24900 :
24901 0 : static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) {
24902 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o);
24903 : }
24904 :
24905 0 : static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) {
24906 0 : return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o);
24907 : }
24908 :
24909 0 : static PyObject *__pyx_specialmethod___pyx_memoryview___repr__(PyObject *self, CYTHON_UNUSED PyObject *arg) {
24910 0 : return __pyx_memoryview___repr__(self);
24911 : }
24912 :
24913 : static PyMethodDef __pyx_methods_memoryview[] = {
24914 : {"__repr__", (PyCFunction)__pyx_specialmethod___pyx_memoryview___repr__, METH_NOARGS|METH_COEXIST, 0},
24915 : {"is_c_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_c_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24916 : {"is_f_contig", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_is_f_contig, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24917 : {"copy", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24918 : {"copy_fortran", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_memoryview_copy_fortran, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24919 : {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24920 : {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryview_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
24921 : {0, 0, 0, 0}
24922 : };
24923 :
24924 : static struct PyGetSetDef __pyx_getsets_memoryview[] = {
24925 : {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0},
24926 : {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0},
24927 : {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0},
24928 : {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0},
24929 : {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0},
24930 : {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0},
24931 : {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0},
24932 : {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0},
24933 : {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0},
24934 : {0, 0, 0, 0, 0}
24935 : };
24936 : #if CYTHON_USE_TYPE_SPECS
24937 : #if !CYTHON_COMPILING_IN_LIMITED_API
24938 :
24939 : static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
24940 : #if PY_MAJOR_VERSION < 3
24941 : 0, /*bf_getreadbuffer*/
24942 : #endif
24943 : #if PY_MAJOR_VERSION < 3
24944 : 0, /*bf_getwritebuffer*/
24945 : #endif
24946 : #if PY_MAJOR_VERSION < 3
24947 : 0, /*bf_getsegcount*/
24948 : #endif
24949 : #if PY_MAJOR_VERSION < 3
24950 : 0, /*bf_getcharbuffer*/
24951 : #endif
24952 : __pyx_memoryview_getbuffer, /*bf_getbuffer*/
24953 : 0, /*bf_releasebuffer*/
24954 : };
24955 : #endif
24956 : static PyType_Slot __pyx_type___pyx_memoryview_slots[] = {
24957 : {Py_tp_dealloc, (void *)__pyx_tp_dealloc_memoryview},
24958 : {Py_tp_repr, (void *)__pyx_memoryview___repr__},
24959 : {Py_sq_length, (void *)__pyx_memoryview___len__},
24960 : {Py_sq_item, (void *)__pyx_sq_item_memoryview},
24961 : {Py_mp_length, (void *)__pyx_memoryview___len__},
24962 : {Py_mp_subscript, (void *)__pyx_memoryview___getitem__},
24963 : {Py_mp_ass_subscript, (void *)__pyx_mp_ass_subscript_memoryview},
24964 : {Py_tp_str, (void *)__pyx_memoryview___str__},
24965 : #if defined(Py_bf_getbuffer)
24966 : {Py_bf_getbuffer, (void *)__pyx_memoryview_getbuffer},
24967 : #endif
24968 : {Py_tp_traverse, (void *)__pyx_tp_traverse_memoryview},
24969 : {Py_tp_clear, (void *)__pyx_tp_clear_memoryview},
24970 : {Py_tp_methods, (void *)__pyx_methods_memoryview},
24971 : {Py_tp_getset, (void *)__pyx_getsets_memoryview},
24972 : {Py_tp_new, (void *)__pyx_tp_new_memoryview},
24973 : {0, 0},
24974 : };
24975 : static PyType_Spec __pyx_type___pyx_memoryview_spec = {
24976 : "scipy.signal._sosfilt.memoryview",
24977 : sizeof(struct __pyx_memoryview_obj),
24978 : 0,
24979 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC,
24980 : __pyx_type___pyx_memoryview_slots,
24981 : };
24982 : #else
24983 :
24984 : static PySequenceMethods __pyx_tp_as_sequence_memoryview = {
24985 : __pyx_memoryview___len__, /*sq_length*/
24986 : 0, /*sq_concat*/
24987 : 0, /*sq_repeat*/
24988 : __pyx_sq_item_memoryview, /*sq_item*/
24989 : 0, /*sq_slice*/
24990 : 0, /*sq_ass_item*/
24991 : 0, /*sq_ass_slice*/
24992 : 0, /*sq_contains*/
24993 : 0, /*sq_inplace_concat*/
24994 : 0, /*sq_inplace_repeat*/
24995 : };
24996 :
24997 : static PyMappingMethods __pyx_tp_as_mapping_memoryview = {
24998 : __pyx_memoryview___len__, /*mp_length*/
24999 : __pyx_memoryview___getitem__, /*mp_subscript*/
25000 : __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/
25001 : };
25002 :
25003 : static PyBufferProcs __pyx_tp_as_buffer_memoryview = {
25004 : #if PY_MAJOR_VERSION < 3
25005 : 0, /*bf_getreadbuffer*/
25006 : #endif
25007 : #if PY_MAJOR_VERSION < 3
25008 : 0, /*bf_getwritebuffer*/
25009 : #endif
25010 : #if PY_MAJOR_VERSION < 3
25011 : 0, /*bf_getsegcount*/
25012 : #endif
25013 : #if PY_MAJOR_VERSION < 3
25014 : 0, /*bf_getcharbuffer*/
25015 : #endif
25016 : __pyx_memoryview_getbuffer, /*bf_getbuffer*/
25017 : 0, /*bf_releasebuffer*/
25018 : };
25019 :
25020 : static PyTypeObject __pyx_type___pyx_memoryview = {
25021 : PyVarObject_HEAD_INIT(0, 0)
25022 : "scipy.signal._sosfilt.""memoryview", /*tp_name*/
25023 : sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/
25024 : 0, /*tp_itemsize*/
25025 : __pyx_tp_dealloc_memoryview, /*tp_dealloc*/
25026 : #if PY_VERSION_HEX < 0x030800b4
25027 : 0, /*tp_print*/
25028 : #endif
25029 : #if PY_VERSION_HEX >= 0x030800b4
25030 : 0, /*tp_vectorcall_offset*/
25031 : #endif
25032 : 0, /*tp_getattr*/
25033 : 0, /*tp_setattr*/
25034 : #if PY_MAJOR_VERSION < 3
25035 : 0, /*tp_compare*/
25036 : #endif
25037 : #if PY_MAJOR_VERSION >= 3
25038 : 0, /*tp_as_async*/
25039 : #endif
25040 : __pyx_memoryview___repr__, /*tp_repr*/
25041 : 0, /*tp_as_number*/
25042 : &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/
25043 : &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/
25044 : 0, /*tp_hash*/
25045 : 0, /*tp_call*/
25046 : __pyx_memoryview___str__, /*tp_str*/
25047 : 0, /*tp_getattro*/
25048 : 0, /*tp_setattro*/
25049 : &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/
25050 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
25051 : 0, /*tp_doc*/
25052 : __pyx_tp_traverse_memoryview, /*tp_traverse*/
25053 : __pyx_tp_clear_memoryview, /*tp_clear*/
25054 : 0, /*tp_richcompare*/
25055 : 0, /*tp_weaklistoffset*/
25056 : 0, /*tp_iter*/
25057 : 0, /*tp_iternext*/
25058 : __pyx_methods_memoryview, /*tp_methods*/
25059 : 0, /*tp_members*/
25060 : __pyx_getsets_memoryview, /*tp_getset*/
25061 : 0, /*tp_base*/
25062 : 0, /*tp_dict*/
25063 : 0, /*tp_descr_get*/
25064 : 0, /*tp_descr_set*/
25065 : #if !CYTHON_USE_TYPE_SPECS
25066 : 0, /*tp_dictoffset*/
25067 : #endif
25068 : 0, /*tp_init*/
25069 : 0, /*tp_alloc*/
25070 : __pyx_tp_new_memoryview, /*tp_new*/
25071 : 0, /*tp_free*/
25072 : 0, /*tp_is_gc*/
25073 : 0, /*tp_bases*/
25074 : 0, /*tp_mro*/
25075 : 0, /*tp_cache*/
25076 : 0, /*tp_subclasses*/
25077 : 0, /*tp_weaklist*/
25078 : 0, /*tp_del*/
25079 : 0, /*tp_version_tag*/
25080 : #if PY_VERSION_HEX >= 0x030400a1
25081 : #if CYTHON_USE_TP_FINALIZE
25082 : 0, /*tp_finalize*/
25083 : #else
25084 : NULL, /*tp_finalize*/
25085 : #endif
25086 : #endif
25087 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
25088 : 0, /*tp_vectorcall*/
25089 : #endif
25090 : #if __PYX_NEED_TP_PRINT_SLOT == 1
25091 : 0, /*tp_print*/
25092 : #endif
25093 : #if PY_VERSION_HEX >= 0x030C0000
25094 : 0, /*tp_watched*/
25095 : #endif
25096 : #if PY_VERSION_HEX >= 0x030d00A4
25097 : 0, /*tp_versions_used*/
25098 : #endif
25099 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
25100 : 0, /*tp_pypy_flags*/
25101 : #endif
25102 : };
25103 : #endif
25104 : static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice;
25105 :
25106 3 : static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) {
25107 3 : struct __pyx_memoryviewslice_obj *p;
25108 3 : PyObject *o = __pyx_tp_new_memoryview(t, a, k);
25109 3 : if (unlikely(!o)) return 0;
25110 3 : p = ((struct __pyx_memoryviewslice_obj *)o);
25111 3 : p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice;
25112 3 : p->from_object = Py_None; Py_INCREF(Py_None);
25113 3 : p->from_slice.memview = NULL;
25114 3 : return o;
25115 : }
25116 :
25117 3 : static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) {
25118 3 : struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
25119 : #if CYTHON_USE_TP_FINALIZE
25120 3 : if (unlikely((PY_VERSION_HEX >= 0x03080000 || __Pyx_PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE)) && __Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && !__Pyx_PyObject_GC_IsFinalized(o)) {
25121 0 : if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == __pyx_tp_dealloc__memoryviewslice) {
25122 0 : if (PyObject_CallFinalizerFromDealloc(o)) return;
25123 : }
25124 : }
25125 : #endif
25126 3 : PyObject_GC_UnTrack(o);
25127 : {
25128 3 : PyObject *etype, *eval, *etb;
25129 3 : PyErr_Fetch(&etype, &eval, &etb);
25130 3 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);
25131 3 : __pyx_memoryviewslice___dealloc__(o);
25132 3 : __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);
25133 3 : PyErr_Restore(etype, eval, etb);
25134 : }
25135 3 : Py_CLEAR(p->from_object);
25136 3 : PyObject_GC_Track(o);
25137 3 : __pyx_tp_dealloc_memoryview(o);
25138 : }
25139 :
25140 0 : static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) {
25141 0 : int e;
25142 0 : struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
25143 0 : e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e;
25144 0 : if (p->from_object) {
25145 0 : e = (*v)(p->from_object, a); if (e) return e;
25146 : }
25147 : return 0;
25148 : }
25149 :
25150 0 : static int __pyx_tp_clear__memoryviewslice(PyObject *o) {
25151 0 : PyObject* tmp;
25152 0 : struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o;
25153 0 : __pyx_tp_clear_memoryview(o);
25154 0 : tmp = ((PyObject*)p->from_object);
25155 0 : p->from_object = Py_None; Py_INCREF(Py_None);
25156 0 : Py_XDECREF(tmp);
25157 0 : __PYX_XCLEAR_MEMVIEW(&p->from_slice, 1);
25158 0 : return 0;
25159 : }
25160 :
25161 : static PyMethodDef __pyx_methods__memoryviewslice[] = {
25162 : {"__reduce_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
25163 : {"__setstate_cython__", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, __Pyx_METH_FASTCALL|METH_KEYWORDS, 0},
25164 : {0, 0, 0, 0}
25165 : };
25166 : #if CYTHON_USE_TYPE_SPECS
25167 : static PyType_Slot __pyx_type___pyx_memoryviewslice_slots[] = {
25168 : {Py_tp_dealloc, (void *)__pyx_tp_dealloc__memoryviewslice},
25169 : {Py_tp_doc, (void *)PyDoc_STR("Internal class for passing memoryview slices to Python")},
25170 : {Py_tp_traverse, (void *)__pyx_tp_traverse__memoryviewslice},
25171 : {Py_tp_clear, (void *)__pyx_tp_clear__memoryviewslice},
25172 : {Py_tp_methods, (void *)__pyx_methods__memoryviewslice},
25173 : {Py_tp_new, (void *)__pyx_tp_new__memoryviewslice},
25174 : {0, 0},
25175 : };
25176 : static PyType_Spec __pyx_type___pyx_memoryviewslice_spec = {
25177 : "scipy.signal._sosfilt._memoryviewslice",
25178 : sizeof(struct __pyx_memoryviewslice_obj),
25179 : 0,
25180 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE,
25181 : __pyx_type___pyx_memoryviewslice_slots,
25182 : };
25183 : #else
25184 :
25185 : static PyTypeObject __pyx_type___pyx_memoryviewslice = {
25186 : PyVarObject_HEAD_INIT(0, 0)
25187 : "scipy.signal._sosfilt.""_memoryviewslice", /*tp_name*/
25188 : sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/
25189 : 0, /*tp_itemsize*/
25190 : __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/
25191 : #if PY_VERSION_HEX < 0x030800b4
25192 : 0, /*tp_print*/
25193 : #endif
25194 : #if PY_VERSION_HEX >= 0x030800b4
25195 : 0, /*tp_vectorcall_offset*/
25196 : #endif
25197 : 0, /*tp_getattr*/
25198 : 0, /*tp_setattr*/
25199 : #if PY_MAJOR_VERSION < 3
25200 : 0, /*tp_compare*/
25201 : #endif
25202 : #if PY_MAJOR_VERSION >= 3
25203 : 0, /*tp_as_async*/
25204 : #endif
25205 : #if CYTHON_COMPILING_IN_PYPY || 0
25206 : __pyx_memoryview___repr__, /*tp_repr*/
25207 : #else
25208 : 0, /*tp_repr*/
25209 : #endif
25210 : 0, /*tp_as_number*/
25211 : 0, /*tp_as_sequence*/
25212 : 0, /*tp_as_mapping*/
25213 : 0, /*tp_hash*/
25214 : 0, /*tp_call*/
25215 : #if CYTHON_COMPILING_IN_PYPY || 0
25216 : __pyx_memoryview___str__, /*tp_str*/
25217 : #else
25218 : 0, /*tp_str*/
25219 : #endif
25220 : 0, /*tp_getattro*/
25221 : 0, /*tp_setattro*/
25222 : 0, /*tp_as_buffer*/
25223 : Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_SEQUENCE, /*tp_flags*/
25224 : PyDoc_STR("Internal class for passing memoryview slices to Python"), /*tp_doc*/
25225 : __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/
25226 : __pyx_tp_clear__memoryviewslice, /*tp_clear*/
25227 : 0, /*tp_richcompare*/
25228 : 0, /*tp_weaklistoffset*/
25229 : 0, /*tp_iter*/
25230 : 0, /*tp_iternext*/
25231 : __pyx_methods__memoryviewslice, /*tp_methods*/
25232 : 0, /*tp_members*/
25233 : 0, /*tp_getset*/
25234 : 0, /*tp_base*/
25235 : 0, /*tp_dict*/
25236 : 0, /*tp_descr_get*/
25237 : 0, /*tp_descr_set*/
25238 : #if !CYTHON_USE_TYPE_SPECS
25239 : 0, /*tp_dictoffset*/
25240 : #endif
25241 : 0, /*tp_init*/
25242 : 0, /*tp_alloc*/
25243 : __pyx_tp_new__memoryviewslice, /*tp_new*/
25244 : 0, /*tp_free*/
25245 : 0, /*tp_is_gc*/
25246 : 0, /*tp_bases*/
25247 : 0, /*tp_mro*/
25248 : 0, /*tp_cache*/
25249 : 0, /*tp_subclasses*/
25250 : 0, /*tp_weaklist*/
25251 : 0, /*tp_del*/
25252 : 0, /*tp_version_tag*/
25253 : #if PY_VERSION_HEX >= 0x030400a1
25254 : #if CYTHON_USE_TP_FINALIZE
25255 : 0, /*tp_finalize*/
25256 : #else
25257 : NULL, /*tp_finalize*/
25258 : #endif
25259 : #endif
25260 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
25261 : 0, /*tp_vectorcall*/
25262 : #endif
25263 : #if __PYX_NEED_TP_PRINT_SLOT == 1
25264 : 0, /*tp_print*/
25265 : #endif
25266 : #if PY_VERSION_HEX >= 0x030C0000
25267 : 0, /*tp_watched*/
25268 : #endif
25269 : #if PY_VERSION_HEX >= 0x030d00A4
25270 : 0, /*tp_versions_used*/
25271 : #endif
25272 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
25273 : 0, /*tp_pypy_flags*/
25274 : #endif
25275 : };
25276 : #endif
25277 :
25278 : static PyMethodDef __pyx_methods[] = {
25279 : {0, 0, 0, 0}
25280 : };
25281 : #ifndef CYTHON_SMALL_CODE
25282 : #if defined(__clang__)
25283 : #define CYTHON_SMALL_CODE
25284 : #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
25285 : #define CYTHON_SMALL_CODE __attribute__((cold))
25286 : #else
25287 : #define CYTHON_SMALL_CODE
25288 : #endif
25289 : #endif
25290 : /* #### Code section: pystring_table ### */
25291 :
25292 1 : static int __Pyx_CreateStringTabAndInitStrings(void) {
25293 1 : __Pyx_StringTabEntry __pyx_string_tab[] = {
25294 1 : {&__pyx_kp_u_, __pyx_k_, sizeof(__pyx_k_), 0, 1, 0, 0},
25295 1 : {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1},
25296 1 : {&__pyx_kp_s_All_dimensions_preceding_dimensi, __pyx_k_All_dimensions_preceding_dimensi, sizeof(__pyx_k_All_dimensions_preceding_dimensi), 0, 0, 1, 0},
25297 1 : {&__pyx_n_s_AssertionError, __pyx_k_AssertionError, sizeof(__pyx_k_AssertionError), 0, 0, 1, 1},
25298 1 : {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0},
25299 1 : {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0},
25300 1 : {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0},
25301 1 : {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0},
25302 1 : {&__pyx_kp_u_Cannot_index_with_type, __pyx_k_Cannot_index_with_type, sizeof(__pyx_k_Cannot_index_with_type), 0, 1, 0, 0},
25303 1 : {&__pyx_kp_s_Cannot_transpose_memoryview_with, __pyx_k_Cannot_transpose_memoryview_with, sizeof(__pyx_k_Cannot_transpose_memoryview_with), 0, 0, 1, 0},
25304 1 : {&__pyx_kp_s_Dimension_d_is_not_direct, __pyx_k_Dimension_d_is_not_direct, sizeof(__pyx_k_Dimension_d_is_not_direct), 0, 0, 1, 0},
25305 1 : {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1},
25306 1 : {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0},
25307 1 : {&__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_k_Expected_at_least_d_argument_s_g, sizeof(__pyx_k_Expected_at_least_d_argument_s_g), 0, 0, 1, 0},
25308 1 : {&__pyx_kp_s_Function_call_with_ambiguous_arg, __pyx_k_Function_call_with_ambiguous_arg, sizeof(__pyx_k_Function_call_with_ambiguous_arg), 0, 0, 1, 0},
25309 1 : {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1},
25310 1 : {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0},
25311 1 : {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1},
25312 1 : {&__pyx_kp_s_Index_out_of_bounds_axis_d, __pyx_k_Index_out_of_bounds_axis_d, sizeof(__pyx_k_Index_out_of_bounds_axis_d), 0, 0, 1, 0},
25313 1 : {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0},
25314 1 : {&__pyx_kp_u_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 1, 0, 0},
25315 1 : {&__pyx_kp_u_Invalid_shape_in_axis, __pyx_k_Invalid_shape_in_axis, sizeof(__pyx_k_Invalid_shape_in_axis), 0, 1, 0, 0},
25316 1 : {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1},
25317 1 : {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0},
25318 1 : {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0},
25319 1 : {&__pyx_kp_s_No_matching_signature_found, __pyx_k_No_matching_signature_found, sizeof(__pyx_k_No_matching_signature_found), 0, 0, 1, 0},
25320 1 : {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1},
25321 1 : {&__pyx_kp_u_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 1, 0, 0},
25322 1 : {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1},
25323 1 : {&__pyx_n_s_Sequence, __pyx_k_Sequence, sizeof(__pyx_k_Sequence), 0, 0, 1, 1},
25324 1 : {&__pyx_kp_s_Step_may_not_be_zero_axis_d, __pyx_k_Step_may_not_be_zero_axis_d, sizeof(__pyx_k_Step_may_not_be_zero_axis_d), 0, 0, 1, 0},
25325 1 : {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1},
25326 1 : {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0},
25327 1 : {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1},
25328 1 : {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1},
25329 1 : {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0},
25330 1 : {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0},
25331 1 : {&__pyx_kp_u__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 1, 0, 0},
25332 1 : {&__pyx_kp_u__2, __pyx_k__2, sizeof(__pyx_k__2), 0, 1, 0, 0},
25333 1 : {&__pyx_n_s__3, __pyx_k__3, sizeof(__pyx_k__3), 0, 0, 1, 1},
25334 1 : {&__pyx_n_s__30, __pyx_k__30, sizeof(__pyx_k__30), 0, 0, 1, 1},
25335 1 : {&__pyx_kp_u__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 1, 0, 0},
25336 1 : {&__pyx_kp_u__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 1, 0, 0},
25337 1 : {&__pyx_n_s_abc, __pyx_k_abc, sizeof(__pyx_k_abc), 0, 0, 1, 1},
25338 1 : {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1},
25339 1 : {&__pyx_kp_u_and, __pyx_k_and, sizeof(__pyx_k_and), 0, 1, 0, 0},
25340 1 : {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1},
25341 1 : {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1},
25342 1 : {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1},
25343 1 : {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1},
25344 1 : {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1},
25345 1 : {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1},
25346 1 : {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1},
25347 1 : {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1},
25348 1 : {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1},
25349 1 : {&__pyx_kp_s_collections_abc, __pyx_k_collections_abc, sizeof(__pyx_k_collections_abc), 0, 0, 1, 0},
25350 1 : {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0},
25351 1 : {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0},
25352 1 : {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1},
25353 1 : {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1},
25354 1 : {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1},
25355 1 : {&__pyx_kp_u_disable, __pyx_k_disable, sizeof(__pyx_k_disable), 0, 1, 0, 0},
25356 1 : {&__pyx_n_s_double, __pyx_k_double, sizeof(__pyx_k_double), 0, 0, 1, 1},
25357 1 : {&__pyx_kp_s_double_complex, __pyx_k_double_complex, sizeof(__pyx_k_double_complex), 0, 0, 1, 0},
25358 1 : {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1},
25359 1 : {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1},
25360 1 : {&__pyx_kp_u_enable, __pyx_k_enable, sizeof(__pyx_k_enable), 0, 1, 0, 0},
25361 1 : {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1},
25362 1 : {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1},
25363 1 : {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1},
25364 1 : {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1},
25365 1 : {&__pyx_n_s_float, __pyx_k_float, sizeof(__pyx_k_float), 0, 0, 1, 1},
25366 1 : {&__pyx_kp_s_float_complex, __pyx_k_float_complex, sizeof(__pyx_k_float_complex), 0, 0, 1, 0},
25367 1 : {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1},
25368 1 : {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1},
25369 1 : {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1},
25370 1 : {&__pyx_n_s_fused_sigindex, __pyx_k_fused_sigindex, sizeof(__pyx_k_fused_sigindex), 0, 0, 1, 1},
25371 1 : {&__pyx_kp_u_gc, __pyx_k_gc, sizeof(__pyx_k_gc), 0, 1, 0, 0},
25372 1 : {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1},
25373 1 : {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1},
25374 1 : {&__pyx_kp_u_got, __pyx_k_got, sizeof(__pyx_k_got), 0, 1, 0, 0},
25375 1 : {&__pyx_kp_u_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 1, 0, 0},
25376 1 : {&__pyx_kp_s_home_czgdp18079_Quansight_scipy, __pyx_k_home_czgdp18079_Quansight_scipy, sizeof(__pyx_k_home_czgdp18079_Quansight_scipy), 0, 0, 1, 0},
25377 1 : {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1},
25378 1 : {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1},
25379 1 : {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1},
25380 1 : {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1},
25381 1 : {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1},
25382 1 : {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1},
25383 1 : {&__pyx_kp_u_isenabled, __pyx_k_isenabled, sizeof(__pyx_k_isenabled), 0, 1, 0, 0},
25384 1 : {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1},
25385 1 : {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0},
25386 1 : {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1},
25387 1 : {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1},
25388 1 : {&__pyx_kp_s_long_double, __pyx_k_long_double, sizeof(__pyx_k_long_double), 0, 0, 1, 0},
25389 1 : {&__pyx_kp_s_long_double_complex, __pyx_k_long_double_complex, sizeof(__pyx_k_long_double_complex), 0, 0, 1, 0},
25390 1 : {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1},
25391 1 : {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1},
25392 1 : {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1},
25393 1 : {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1},
25394 1 : {&__pyx_n_s_n_samples, __pyx_k_n_samples, sizeof(__pyx_k_n_samples), 0, 0, 1, 1},
25395 1 : {&__pyx_n_s_n_sections, __pyx_k_n_sections, sizeof(__pyx_k_n_sections), 0, 0, 1, 1},
25396 1 : {&__pyx_n_s_n_signals, __pyx_k_n_signals, sizeof(__pyx_k_n_signals), 0, 0, 1, 1},
25397 1 : {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1},
25398 1 : {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1},
25399 1 : {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1},
25400 1 : {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1},
25401 1 : {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0},
25402 1 : {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1},
25403 1 : {&__pyx_kp_u_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 1, 0, 0},
25404 1 : {&__pyx_kp_u_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 1, 0, 0},
25405 1 : {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1},
25406 1 : {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1},
25407 1 : {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1},
25408 1 : {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1},
25409 1 : {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1},
25410 1 : {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1},
25411 1 : {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1},
25412 1 : {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1},
25413 1 : {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1},
25414 1 : {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1},
25415 1 : {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1},
25416 1 : {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1},
25417 1 : {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1},
25418 1 : {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1},
25419 1 : {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1},
25420 1 : {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1},
25421 1 : {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1},
25422 1 : {&__pyx_n_s_scipy_signal__sosfilt, __pyx_k_scipy_signal__sosfilt, sizeof(__pyx_k_scipy_signal__sosfilt), 0, 0, 1, 1},
25423 1 : {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1},
25424 1 : {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1},
25425 1 : {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1},
25426 1 : {&__pyx_n_s_signatures, __pyx_k_signatures, sizeof(__pyx_k_signatures), 0, 0, 1, 1},
25427 1 : {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1},
25428 1 : {&__pyx_n_s_sos, __pyx_k_sos, sizeof(__pyx_k_sos), 0, 0, 1, 1},
25429 1 : {&__pyx_n_s_sosfilt, __pyx_k_sosfilt, sizeof(__pyx_k_sosfilt), 0, 0, 1, 1},
25430 1 : {&__pyx_n_s_sosfilt_object, __pyx_k_sosfilt_object, sizeof(__pyx_k_sosfilt_object), 0, 0, 1, 1},
25431 1 : {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1},
25432 1 : {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1},
25433 1 : {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1},
25434 1 : {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1},
25435 1 : {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1},
25436 1 : {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0},
25437 1 : {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0},
25438 1 : {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0},
25439 1 : {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0},
25440 1 : {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1},
25441 1 : {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1},
25442 1 : {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1},
25443 1 : {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1},
25444 1 : {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0},
25445 1 : {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0},
25446 1 : {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1},
25447 1 : {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1},
25448 1 : {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1},
25449 1 : {&__pyx_n_s_version_info, __pyx_k_version_info, sizeof(__pyx_k_version_info), 0, 0, 1, 1},
25450 1 : {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1},
25451 1 : {&__pyx_n_s_x_n, __pyx_k_x_n, sizeof(__pyx_k_x_n), 0, 0, 1, 1},
25452 1 : {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1},
25453 1 : {&__pyx_n_s_zi, __pyx_k_zi, sizeof(__pyx_k_zi), 0, 0, 1, 1},
25454 : {0, 0, 0, 0, 0, 0, 0}
25455 : };
25456 1 : return __Pyx_InitStrings(__pyx_string_tab);
25457 : }
25458 : /* #### Code section: cached_builtins ### */
25459 1 : static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) {
25460 : #if PY_MAJOR_VERSION >= 3
25461 1 : __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(0, 43, __pyx_L1_error)
25462 : #else
25463 : __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(0, 43, __pyx_L1_error)
25464 : #endif
25465 1 : __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 82, __pyx_L1_error)
25466 1 : __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(0, 82, __pyx_L1_error)
25467 1 : __pyx_builtin___import__ = __Pyx_GetBuiltinName(__pyx_n_s_import); if (!__pyx_builtin___import__) __PYX_ERR(1, 100, __pyx_L1_error)
25468 1 : __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(1, 156, __pyx_L1_error)
25469 1 : __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(1, 159, __pyx_L1_error)
25470 1 : __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 261, __pyx_L1_error)
25471 1 : __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s_AssertionError); if (!__pyx_builtin_AssertionError) __PYX_ERR(1, 373, __pyx_L1_error)
25472 1 : __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(1, 408, __pyx_L1_error)
25473 1 : __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(1, 618, __pyx_L1_error)
25474 1 : __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 914, __pyx_L1_error)
25475 1 : __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1025, __pyx_L1_error)
25476 : return 0;
25477 : __pyx_L1_error:;
25478 : return -1;
25479 : }
25480 : /* #### Code section: cached_constants ### */
25481 :
25482 1 : static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) {
25483 : __Pyx_RefNannyDeclarations
25484 1 : __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
25485 :
25486 : /* "View.MemoryView":582
25487 : * def suboffsets(self):
25488 : * if self.view.suboffsets == NULL:
25489 : * return (-1,) * self.view.ndim # <<<<<<<<<<<<<<
25490 : *
25491 : * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]])
25492 : */
25493 1 : __pyx_tuple__4 = PyTuple_New(1); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 582, __pyx_L1_error)
25494 1 : __Pyx_GOTREF(__pyx_tuple__4);
25495 1 : __Pyx_INCREF(__pyx_int_neg_1);
25496 1 : __Pyx_GIVEREF(__pyx_int_neg_1);
25497 1 : if (__Pyx_PyTuple_SET_ITEM(__pyx_tuple__4, 0, __pyx_int_neg_1)) __PYX_ERR(1, 582, __pyx_L1_error);
25498 1 : __Pyx_GIVEREF(__pyx_tuple__4);
25499 :
25500 : /* "View.MemoryView":679
25501 : * tup = <tuple>index if isinstance(index, tuple) else (index,)
25502 : *
25503 : * result = [slice(None)] * ndim # <<<<<<<<<<<<<<
25504 : * have_slices = False
25505 : * seen_ellipsis = False
25506 : */
25507 1 : __pyx_slice__5 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__5)) __PYX_ERR(1, 679, __pyx_L1_error)
25508 1 : __Pyx_GOTREF(__pyx_slice__5);
25509 1 : __Pyx_GIVEREF(__pyx_slice__5);
25510 :
25511 : /* "(tree fragment)":4
25512 : * cdef object __pyx_PickleError
25513 : * cdef object __pyx_result
25514 : * if __pyx_checksum not in (0x82a3537, 0x6ae9995, 0xb068931): # <<<<<<<<<<<<<<
25515 : * from pickle import PickleError as __pyx_PickleError
25516 : * raise __pyx_PickleError, "Incompatible checksums (0x%x vs (0x82a3537, 0x6ae9995, 0xb068931) = (name))" % __pyx_checksum
25517 : */
25518 1 : __pyx_tuple__8 = PyTuple_Pack(3, __pyx_int_136983863, __pyx_int_112105877, __pyx_int_184977713); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 4, __pyx_L1_error)
25519 1 : __Pyx_GOTREF(__pyx_tuple__8);
25520 1 : __Pyx_GIVEREF(__pyx_tuple__8);
25521 :
25522 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025
25523 : * __pyx_import_array()
25524 : * except Exception:
25525 : * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<<
25526 : *
25527 : * cdef inline int import_umath() except -1:
25528 : */
25529 1 : __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1025, __pyx_L1_error)
25530 1 : __Pyx_GOTREF(__pyx_tuple__9);
25531 1 : __Pyx_GIVEREF(__pyx_tuple__9);
25532 :
25533 : /* "../../../miniforge3/envs/scipy-dev/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031
25534 : * _import_umath()
25535 : * except Exception:
25536 : * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<<
25537 : *
25538 : * cdef inline int import_ufunc() except -1:
25539 : */
25540 1 : __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1031, __pyx_L1_error)
25541 1 : __Pyx_GOTREF(__pyx_tuple__10);
25542 1 : __Pyx_GIVEREF(__pyx_tuple__10);
25543 :
25544 : /* "scipy/signal/_sosfilt.pyx":82
25545 : *
25546 : *
25547 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
25548 : * DTYPE_t [:, ::1] x,
25549 : * DTYPE_t [:, :, ::1] zi):
25550 : */
25551 1 : __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 82, __pyx_L1_error)
25552 1 : __Pyx_GOTREF(__pyx_tuple__13);
25553 1 : __Pyx_GIVEREF(__pyx_tuple__13);
25554 1 : __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 82, __pyx_L1_error)
25555 1 : __Pyx_GOTREF(__pyx_tuple__14);
25556 1 : __Pyx_GIVEREF(__pyx_tuple__14);
25557 :
25558 : /* "View.MemoryView":100
25559 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
25560 : * try:
25561 : * if __import__("sys").version_info >= (3, 3): # <<<<<<<<<<<<<<
25562 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
25563 : * else:
25564 : */
25565 1 : __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_sys); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(1, 100, __pyx_L1_error)
25566 1 : __Pyx_GOTREF(__pyx_tuple__15);
25567 1 : __Pyx_GIVEREF(__pyx_tuple__15);
25568 1 : __pyx_tuple__16 = PyTuple_Pack(2, __pyx_int_3, __pyx_int_3); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(1, 100, __pyx_L1_error)
25569 1 : __Pyx_GOTREF(__pyx_tuple__16);
25570 1 : __Pyx_GIVEREF(__pyx_tuple__16);
25571 :
25572 : /* "View.MemoryView":101
25573 : * try:
25574 : * if __import__("sys").version_info >= (3, 3):
25575 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence # <<<<<<<<<<<<<<
25576 : * else:
25577 : * __pyx_collections_abc_Sequence = __import__("collections").Sequence
25578 : */
25579 1 : __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_collections_abc); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(1, 101, __pyx_L1_error)
25580 1 : __Pyx_GOTREF(__pyx_tuple__17);
25581 1 : __Pyx_GIVEREF(__pyx_tuple__17);
25582 :
25583 : /* "View.MemoryView":103
25584 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
25585 : * else:
25586 : * __pyx_collections_abc_Sequence = __import__("collections").Sequence # <<<<<<<<<<<<<<
25587 : * except:
25588 : *
25589 : */
25590 1 : __pyx_tuple__18 = PyTuple_Pack(1, __pyx_n_s_collections); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(1, 103, __pyx_L1_error)
25591 1 : __Pyx_GOTREF(__pyx_tuple__18);
25592 1 : __Pyx_GIVEREF(__pyx_tuple__18);
25593 :
25594 : /* "View.MemoryView":309
25595 : * return self.name
25596 : *
25597 : * cdef generic = Enum("<strided and direct or indirect>") # <<<<<<<<<<<<<<
25598 : * cdef strided = Enum("<strided and direct>") # default
25599 : * cdef indirect = Enum("<strided and indirect>")
25600 : */
25601 1 : __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(1, 309, __pyx_L1_error)
25602 1 : __Pyx_GOTREF(__pyx_tuple__19);
25603 1 : __Pyx_GIVEREF(__pyx_tuple__19);
25604 :
25605 : /* "View.MemoryView":310
25606 : *
25607 : * cdef generic = Enum("<strided and direct or indirect>")
25608 : * cdef strided = Enum("<strided and direct>") # default # <<<<<<<<<<<<<<
25609 : * cdef indirect = Enum("<strided and indirect>")
25610 : *
25611 : */
25612 1 : __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(1, 310, __pyx_L1_error)
25613 1 : __Pyx_GOTREF(__pyx_tuple__20);
25614 1 : __Pyx_GIVEREF(__pyx_tuple__20);
25615 :
25616 : /* "View.MemoryView":311
25617 : * cdef generic = Enum("<strided and direct or indirect>")
25618 : * cdef strided = Enum("<strided and direct>") # default
25619 : * cdef indirect = Enum("<strided and indirect>") # <<<<<<<<<<<<<<
25620 : *
25621 : *
25622 : */
25623 1 : __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(1, 311, __pyx_L1_error)
25624 1 : __Pyx_GOTREF(__pyx_tuple__21);
25625 1 : __Pyx_GIVEREF(__pyx_tuple__21);
25626 :
25627 : /* "View.MemoryView":314
25628 : *
25629 : *
25630 : * cdef contiguous = Enum("<contiguous and direct>") # <<<<<<<<<<<<<<
25631 : * cdef indirect_contiguous = Enum("<contiguous and indirect>")
25632 : *
25633 : */
25634 1 : __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(1, 314, __pyx_L1_error)
25635 1 : __Pyx_GOTREF(__pyx_tuple__22);
25636 1 : __Pyx_GIVEREF(__pyx_tuple__22);
25637 :
25638 : /* "View.MemoryView":315
25639 : *
25640 : * cdef contiguous = Enum("<contiguous and direct>")
25641 : * cdef indirect_contiguous = Enum("<contiguous and indirect>") # <<<<<<<<<<<<<<
25642 : *
25643 : *
25644 : */
25645 1 : __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(1, 315, __pyx_L1_error)
25646 1 : __Pyx_GOTREF(__pyx_tuple__23);
25647 1 : __Pyx_GIVEREF(__pyx_tuple__23);
25648 :
25649 : /* "(tree fragment)":1
25650 : * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
25651 : * cdef object __pyx_PickleError
25652 : * cdef object __pyx_result
25653 : */
25654 1 : __pyx_tuple__24 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(1, 1, __pyx_L1_error)
25655 1 : __Pyx_GOTREF(__pyx_tuple__24);
25656 1 : __Pyx_GIVEREF(__pyx_tuple__24);
25657 1 : __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(1, 1, __pyx_L1_error)
25658 :
25659 : /* "scipy/signal/_sosfilt.pyx":59
25660 : *
25661 : *
25662 : * @cython.cdivision(True) # <<<<<<<<<<<<<<
25663 : * @cython.boundscheck(False)
25664 : * @cython.wraparound(False)
25665 : */
25666 1 : __pyx_tuple__26 = PyTuple_Pack(10, __pyx_n_s_sos, __pyx_n_s_x, __pyx_n_s_zi, __pyx_n_s_n_signals, __pyx_n_s_n_samples, __pyx_n_s_n_sections, __pyx_n_s_i, __pyx_n_s_n, __pyx_n_s_s, __pyx_n_s_x_n); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 59, __pyx_L1_error)
25667 1 : __Pyx_GOTREF(__pyx_tuple__26);
25668 1 : __Pyx_GIVEREF(__pyx_tuple__26);
25669 1 : __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__26, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_czgdp18079_Quansight_scipy, __pyx_n_s_sosfilt_object, 59, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 59, __pyx_L1_error)
25670 :
25671 : /* "scipy/signal/_sosfilt.pyx":82
25672 : *
25673 : *
25674 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
25675 : * DTYPE_t [:, ::1] x,
25676 : * DTYPE_t [:, :, ::1] zi):
25677 : */
25678 1 : __pyx_tuple__28 = PyTuple_Pack(3, __pyx_n_s_sos, __pyx_n_s_x, __pyx_n_s_zi); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 82, __pyx_L1_error)
25679 1 : __Pyx_GOTREF(__pyx_tuple__28);
25680 1 : __Pyx_GIVEREF(__pyx_tuple__28);
25681 1 : __pyx_codeobj__29 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__28, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_home_czgdp18079_Quansight_scipy, __pyx_n_s_sosfilt, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__29)) __PYX_ERR(0, 82, __pyx_L1_error)
25682 : __Pyx_RefNannyFinishContext();
25683 : return 0;
25684 : __pyx_L1_error:;
25685 : __Pyx_RefNannyFinishContext();
25686 : return -1;
25687 : }
25688 : /* #### Code section: init_constants ### */
25689 :
25690 1 : static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) {
25691 1 : __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type;
25692 1 : __pyx_umethod_PyDict_Type_get.method_name = &__pyx_n_s_get;
25693 1 : __pyx_umethod_PyDict_Type_values.type = (PyObject*)&PyDict_Type;
25694 1 : __pyx_umethod_PyDict_Type_values.method_name = &__pyx_n_s_values;
25695 1 : if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(0, 1, __pyx_L1_error);
25696 1 : __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(0, 1, __pyx_L1_error)
25697 1 : __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(0, 1, __pyx_L1_error)
25698 1 : __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(0, 1, __pyx_L1_error)
25699 1 : __pyx_int_112105877 = PyInt_FromLong(112105877L); if (unlikely(!__pyx_int_112105877)) __PYX_ERR(0, 1, __pyx_L1_error)
25700 1 : __pyx_int_136983863 = PyInt_FromLong(136983863L); if (unlikely(!__pyx_int_136983863)) __PYX_ERR(0, 1, __pyx_L1_error)
25701 1 : __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(0, 1, __pyx_L1_error)
25702 1 : __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(0, 1, __pyx_L1_error)
25703 : return 0;
25704 : __pyx_L1_error:;
25705 : return -1;
25706 : }
25707 : /* #### Code section: init_globals ### */
25708 :
25709 1 : static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) {
25710 : /* AssertionsEnabled.init */
25711 1 : if (likely(__Pyx_init_assertions_enabled() == 0)); else
25712 :
25713 0 : if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 1, __pyx_L1_error)
25714 :
25715 : return 0;
25716 0 : __pyx_L1_error:;
25717 0 : return -1;
25718 : }
25719 : /* #### Code section: init_module ### */
25720 :
25721 : static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/
25722 : static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/
25723 : static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/
25724 : static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/
25725 : static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/
25726 : static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/
25727 : static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/
25728 :
25729 1 : static int __Pyx_modinit_global_init_code(void) {
25730 : __Pyx_RefNannyDeclarations
25731 1 : __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0);
25732 : /*--- Global init code ---*/
25733 1 : __pyx_collections_abc_Sequence = Py_None; Py_INCREF(Py_None);
25734 1 : generic = Py_None; Py_INCREF(Py_None);
25735 1 : strided = Py_None; Py_INCREF(Py_None);
25736 1 : indirect = Py_None; Py_INCREF(Py_None);
25737 1 : contiguous = Py_None; Py_INCREF(Py_None);
25738 1 : indirect_contiguous = Py_None; Py_INCREF(Py_None);
25739 1 : __Pyx_RefNannyFinishContext();
25740 1 : return 0;
25741 : }
25742 :
25743 : static int __Pyx_modinit_variable_export_code(void) {
25744 : __Pyx_RefNannyDeclarations
25745 : __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0);
25746 : /*--- Variable export code ---*/
25747 : __Pyx_RefNannyFinishContext();
25748 : return 0;
25749 : }
25750 :
25751 : static int __Pyx_modinit_function_export_code(void) {
25752 : __Pyx_RefNannyDeclarations
25753 : __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0);
25754 : /*--- Function export code ---*/
25755 : __Pyx_RefNannyFinishContext();
25756 : return 0;
25757 : }
25758 :
25759 1 : static int __Pyx_modinit_type_init_code(void) {
25760 : __Pyx_RefNannyDeclarations
25761 1 : PyObject *__pyx_t_1 = NULL;
25762 1 : int __pyx_lineno = 0;
25763 1 : const char *__pyx_filename = NULL;
25764 1 : int __pyx_clineno = 0;
25765 1 : __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0);
25766 : /*--- Type init code ---*/
25767 1 : __pyx_vtabptr_array = &__pyx_vtable_array;
25768 1 : __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview;
25769 : #if CYTHON_USE_TYPE_SPECS
25770 : __pyx_array_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_array_spec, NULL); if (unlikely(!__pyx_array_type)) __PYX_ERR(1, 114, __pyx_L1_error)
25771 : #if !CYTHON_COMPILING_IN_LIMITED_API
25772 : __pyx_array_type->tp_as_buffer = &__pyx_tp_as_buffer_array;
25773 : if (!__pyx_array_type->tp_as_buffer->bf_releasebuffer && __pyx_array_type->tp_base->tp_as_buffer && __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer) {
25774 : __pyx_array_type->tp_as_buffer->bf_releasebuffer = __pyx_array_type->tp_base->tp_as_buffer->bf_releasebuffer;
25775 : }
25776 : #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
25777 : /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
25778 : #elif defined(_MSC_VER)
25779 : #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
25780 : #else
25781 : #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
25782 : #endif
25783 : if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_array_spec, __pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
25784 : #else
25785 1 : __pyx_array_type = &__pyx_type___pyx_array;
25786 : #endif
25787 : #if !CYTHON_COMPILING_IN_LIMITED_API
25788 : #endif
25789 : #if !CYTHON_USE_TYPE_SPECS
25790 1 : if (__Pyx_PyType_Ready(__pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
25791 : #endif
25792 : #if PY_MAJOR_VERSION < 3
25793 : __pyx_array_type->tp_print = 0;
25794 : #endif
25795 1 : if (__Pyx_SetVtable(__pyx_array_type, __pyx_vtabptr_array) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
25796 : #if !CYTHON_COMPILING_IN_LIMITED_API
25797 1 : if (__Pyx_MergeVtables(__pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
25798 : #endif
25799 : #if !CYTHON_COMPILING_IN_LIMITED_API
25800 1 : if (__Pyx_setup_reduce((PyObject *) __pyx_array_type) < 0) __PYX_ERR(1, 114, __pyx_L1_error)
25801 : #endif
25802 : #if CYTHON_USE_TYPE_SPECS
25803 : __pyx_MemviewEnum_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_MemviewEnum_spec, NULL); if (unlikely(!__pyx_MemviewEnum_type)) __PYX_ERR(1, 302, __pyx_L1_error)
25804 : if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_MemviewEnum_spec, __pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
25805 : #else
25806 1 : __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum;
25807 : #endif
25808 : #if !CYTHON_COMPILING_IN_LIMITED_API
25809 : #endif
25810 : #if !CYTHON_USE_TYPE_SPECS
25811 1 : if (__Pyx_PyType_Ready(__pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
25812 : #endif
25813 : #if PY_MAJOR_VERSION < 3
25814 : __pyx_MemviewEnum_type->tp_print = 0;
25815 : #endif
25816 : #if !CYTHON_COMPILING_IN_LIMITED_API
25817 1 : if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_MemviewEnum_type->tp_dictoffset && __pyx_MemviewEnum_type->tp_getattro == PyObject_GenericGetAttr)) {
25818 1 : __pyx_MemviewEnum_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
25819 : }
25820 : #endif
25821 : #if !CYTHON_COMPILING_IN_LIMITED_API
25822 1 : if (__Pyx_setup_reduce((PyObject *) __pyx_MemviewEnum_type) < 0) __PYX_ERR(1, 302, __pyx_L1_error)
25823 : #endif
25824 1 : __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview;
25825 1 : __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer;
25826 1 : __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice;
25827 1 : __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment;
25828 1 : __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar;
25829 1 : __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed;
25830 1 : __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object;
25831 1 : __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object;
25832 1 : __pyx_vtable_memoryview._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryview__get_base;
25833 : #if CYTHON_USE_TYPE_SPECS
25834 : __pyx_memoryview_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryview_spec, NULL); if (unlikely(!__pyx_memoryview_type)) __PYX_ERR(1, 337, __pyx_L1_error)
25835 : #if !CYTHON_COMPILING_IN_LIMITED_API
25836 : __pyx_memoryview_type->tp_as_buffer = &__pyx_tp_as_buffer_memoryview;
25837 : if (!__pyx_memoryview_type->tp_as_buffer->bf_releasebuffer && __pyx_memoryview_type->tp_base->tp_as_buffer && __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer) {
25838 : __pyx_memoryview_type->tp_as_buffer->bf_releasebuffer = __pyx_memoryview_type->tp_base->tp_as_buffer->bf_releasebuffer;
25839 : }
25840 : #elif defined(Py_bf_getbuffer) && defined(Py_bf_releasebuffer)
25841 : /* PY_VERSION_HEX >= 0x03090000 || Py_LIMITED_API >= 0x030B0000 */
25842 : #elif defined(_MSC_VER)
25843 : #pragma message ("The buffer protocol is not supported in the Limited C-API < 3.11.")
25844 : #else
25845 : #warning "The buffer protocol is not supported in the Limited C-API < 3.11."
25846 : #endif
25847 : if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryview_spec, __pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
25848 : #else
25849 1 : __pyx_memoryview_type = &__pyx_type___pyx_memoryview;
25850 : #endif
25851 : #if !CYTHON_COMPILING_IN_LIMITED_API
25852 : #endif
25853 : #if !CYTHON_USE_TYPE_SPECS
25854 1 : if (__Pyx_PyType_Ready(__pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
25855 : #endif
25856 : #if PY_MAJOR_VERSION < 3
25857 : __pyx_memoryview_type->tp_print = 0;
25858 : #endif
25859 : #if !CYTHON_COMPILING_IN_LIMITED_API
25860 1 : if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryview_type->tp_dictoffset && __pyx_memoryview_type->tp_getattro == PyObject_GenericGetAttr)) {
25861 1 : __pyx_memoryview_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
25862 : }
25863 : #endif
25864 1 : if (__Pyx_SetVtable(__pyx_memoryview_type, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
25865 : #if !CYTHON_COMPILING_IN_LIMITED_API
25866 1 : if (__Pyx_MergeVtables(__pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
25867 : #endif
25868 : #if !CYTHON_COMPILING_IN_LIMITED_API
25869 1 : if (__Pyx_setup_reduce((PyObject *) __pyx_memoryview_type) < 0) __PYX_ERR(1, 337, __pyx_L1_error)
25870 : #endif
25871 1 : __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice;
25872 1 : __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview;
25873 1 : __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object;
25874 1 : __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object;
25875 1 : __pyx_vtable__memoryviewslice.__pyx_base._get_base = (PyObject *(*)(struct __pyx_memoryview_obj *))__pyx_memoryviewslice__get_base;
25876 : #if CYTHON_USE_TYPE_SPECS
25877 : __pyx_t_1 = PyTuple_Pack(1, (PyObject *)__pyx_memoryview_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 952, __pyx_L1_error)
25878 : __Pyx_GOTREF(__pyx_t_1);
25879 : __pyx_memoryviewslice_type = (PyTypeObject *) __Pyx_PyType_FromModuleAndSpec(__pyx_m, &__pyx_type___pyx_memoryviewslice_spec, __pyx_t_1);
25880 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
25881 : if (unlikely(!__pyx_memoryviewslice_type)) __PYX_ERR(1, 952, __pyx_L1_error)
25882 : if (__Pyx_fix_up_extension_type_from_spec(&__pyx_type___pyx_memoryviewslice_spec, __pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
25883 : #else
25884 1 : __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice;
25885 : #endif
25886 : #if !CYTHON_COMPILING_IN_LIMITED_API
25887 1 : __pyx_memoryviewslice_type->tp_base = __pyx_memoryview_type;
25888 : #endif
25889 : #if !CYTHON_USE_TYPE_SPECS
25890 1 : if (__Pyx_PyType_Ready(__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
25891 : #endif
25892 : #if PY_MAJOR_VERSION < 3
25893 : __pyx_memoryviewslice_type->tp_print = 0;
25894 : #endif
25895 : #if !CYTHON_COMPILING_IN_LIMITED_API
25896 1 : if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_memoryviewslice_type->tp_dictoffset && __pyx_memoryviewslice_type->tp_getattro == PyObject_GenericGetAttr)) {
25897 1 : __pyx_memoryviewslice_type->tp_getattro = __Pyx_PyObject_GenericGetAttr;
25898 : }
25899 : #endif
25900 1 : if (__Pyx_SetVtable(__pyx_memoryviewslice_type, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
25901 : #if !CYTHON_COMPILING_IN_LIMITED_API
25902 1 : if (__Pyx_MergeVtables(__pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
25903 : #endif
25904 : #if !CYTHON_COMPILING_IN_LIMITED_API
25905 1 : if (__Pyx_setup_reduce((PyObject *) __pyx_memoryviewslice_type) < 0) __PYX_ERR(1, 952, __pyx_L1_error)
25906 : #endif
25907 : __Pyx_RefNannyFinishContext();
25908 : return 0;
25909 0 : __pyx_L1_error:;
25910 0 : __Pyx_XDECREF(__pyx_t_1);
25911 0 : __Pyx_RefNannyFinishContext();
25912 0 : return -1;
25913 : }
25914 :
25915 1 : static int __Pyx_modinit_type_import_code(void) {
25916 : __Pyx_RefNannyDeclarations
25917 1 : PyObject *__pyx_t_1 = NULL;
25918 1 : int __pyx_lineno = 0;
25919 1 : const char *__pyx_filename = NULL;
25920 1 : int __pyx_clineno = 0;
25921 1 : __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0);
25922 : /*--- Type import code ---*/
25923 1 : __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error)
25924 1 : __Pyx_GOTREF(__pyx_t_1);
25925 1 : __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type",
25926 : #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000
25927 : sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
25928 : #elif CYTHON_COMPILING_IN_LIMITED_API
25929 : sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject),
25930 : #else
25931 : sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject),
25932 : #endif
25933 1 : __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error)
25934 1 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25935 1 : __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error)
25936 1 : __Pyx_GOTREF(__pyx_t_1);
25937 1 : __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 271, __pyx_L1_error)
25938 1 : __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 316, __pyx_L1_error)
25939 1 : __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 320, __pyx_L1_error)
25940 1 : __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 359, __pyx_L1_error)
25941 1 : __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error)
25942 1 : __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error)
25943 1 : __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error)
25944 1 : __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error)
25945 1 : __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error)
25946 1 : __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error)
25947 1 : __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error)
25948 1 : __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error)
25949 1 : __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error)
25950 1 : __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error)
25951 1 : __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 929, __pyx_L1_error)
25952 1 : __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
25953 : __Pyx_RefNannyFinishContext();
25954 : return 0;
25955 0 : __pyx_L1_error:;
25956 0 : __Pyx_XDECREF(__pyx_t_1);
25957 0 : __Pyx_RefNannyFinishContext();
25958 0 : return -1;
25959 : }
25960 :
25961 : static int __Pyx_modinit_variable_import_code(void) {
25962 : __Pyx_RefNannyDeclarations
25963 : __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0);
25964 : /*--- Variable import code ---*/
25965 : __Pyx_RefNannyFinishContext();
25966 : return 0;
25967 : }
25968 :
25969 : static int __Pyx_modinit_function_import_code(void) {
25970 : __Pyx_RefNannyDeclarations
25971 : __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0);
25972 : /*--- Function import code ---*/
25973 : __Pyx_RefNannyFinishContext();
25974 : return 0;
25975 : }
25976 :
25977 :
25978 : #if PY_MAJOR_VERSION >= 3
25979 : #if CYTHON_PEP489_MULTI_PHASE_INIT
25980 : static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/
25981 : static int __pyx_pymod_exec__sosfilt(PyObject* module); /*proto*/
25982 : static PyModuleDef_Slot __pyx_moduledef_slots[] = {
25983 : {Py_mod_create, (void*)__pyx_pymod_create},
25984 : {Py_mod_exec, (void*)__pyx_pymod_exec__sosfilt},
25985 : {0, NULL}
25986 : };
25987 : #endif
25988 :
25989 : #ifdef __cplusplus
25990 : namespace {
25991 : struct PyModuleDef __pyx_moduledef =
25992 : #else
25993 : static struct PyModuleDef __pyx_moduledef =
25994 : #endif
25995 : {
25996 : PyModuleDef_HEAD_INIT,
25997 : "_sosfilt",
25998 : 0, /* m_doc */
25999 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26000 : 0, /* m_size */
26001 : #elif CYTHON_USE_MODULE_STATE
26002 : sizeof(__pyx_mstate), /* m_size */
26003 : #else
26004 : -1, /* m_size */
26005 : #endif
26006 : __pyx_methods /* m_methods */,
26007 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26008 : __pyx_moduledef_slots, /* m_slots */
26009 : #else
26010 : NULL, /* m_reload */
26011 : #endif
26012 : #if CYTHON_USE_MODULE_STATE
26013 : __pyx_m_traverse, /* m_traverse */
26014 : __pyx_m_clear, /* m_clear */
26015 : NULL /* m_free */
26016 : #else
26017 : NULL, /* m_traverse */
26018 : NULL, /* m_clear */
26019 : NULL /* m_free */
26020 : #endif
26021 : };
26022 : #ifdef __cplusplus
26023 : } /* anonymous namespace */
26024 : #endif
26025 : #endif
26026 :
26027 : #ifndef CYTHON_NO_PYINIT_EXPORT
26028 : #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC
26029 : #elif PY_MAJOR_VERSION < 3
26030 : #ifdef __cplusplus
26031 : #define __Pyx_PyMODINIT_FUNC extern "C" void
26032 : #else
26033 : #define __Pyx_PyMODINIT_FUNC void
26034 : #endif
26035 : #else
26036 : #ifdef __cplusplus
26037 : #define __Pyx_PyMODINIT_FUNC extern "C" PyObject *
26038 : #else
26039 : #define __Pyx_PyMODINIT_FUNC PyObject *
26040 : #endif
26041 : #endif
26042 :
26043 :
26044 : #if PY_MAJOR_VERSION < 3
26045 : __Pyx_PyMODINIT_FUNC init_sosfilt(void) CYTHON_SMALL_CODE; /*proto*/
26046 : __Pyx_PyMODINIT_FUNC init_sosfilt(void)
26047 : #else
26048 : __Pyx_PyMODINIT_FUNC PyInit__sosfilt(void) CYTHON_SMALL_CODE; /*proto*/
26049 1 : __Pyx_PyMODINIT_FUNC PyInit__sosfilt(void)
26050 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26051 : {
26052 1 : return PyModuleDef_Init(&__pyx_moduledef);
26053 : }
26054 1 : static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) {
26055 : #if PY_VERSION_HEX >= 0x030700A1
26056 1 : static PY_INT64_T main_interpreter_id = -1;
26057 1 : PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp);
26058 1 : if (main_interpreter_id == -1) {
26059 1 : main_interpreter_id = current_id;
26060 2 : return (unlikely(current_id == -1)) ? -1 : 0;
26061 0 : } else if (unlikely(main_interpreter_id != current_id))
26062 : #else
26063 : static PyInterpreterState *main_interpreter = NULL;
26064 : PyInterpreterState *current_interpreter = PyThreadState_Get()->interp;
26065 : if (!main_interpreter) {
26066 : main_interpreter = current_interpreter;
26067 : } else if (unlikely(main_interpreter != current_interpreter))
26068 : #endif
26069 : {
26070 0 : PyErr_SetString(
26071 : PyExc_ImportError,
26072 : "Interpreter change detected - this module can only be loaded into one interpreter per process.");
26073 0 : return -1;
26074 : }
26075 : return 0;
26076 : }
26077 : #if CYTHON_COMPILING_IN_LIMITED_API
26078 : static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none)
26079 : #else
26080 4 : static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none)
26081 : #endif
26082 : {
26083 4 : PyObject *value = PyObject_GetAttrString(spec, from_name);
26084 4 : int result = 0;
26085 4 : if (likely(value)) {
26086 4 : if (allow_none || value != Py_None) {
26087 : #if CYTHON_COMPILING_IN_LIMITED_API
26088 : result = PyModule_AddObject(module, to_name, value);
26089 : #else
26090 3 : result = PyDict_SetItemString(moddict, to_name, value);
26091 : #endif
26092 : }
26093 4 : Py_DECREF(value);
26094 0 : } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) {
26095 0 : PyErr_Clear();
26096 : } else {
26097 : result = -1;
26098 : }
26099 4 : return result;
26100 : }
26101 1 : static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) {
26102 1 : PyObject *module = NULL, *moddict, *modname;
26103 1 : CYTHON_UNUSED_VAR(def);
26104 1 : if (__Pyx_check_single_interpreter())
26105 : return NULL;
26106 1 : if (__pyx_m)
26107 0 : return __Pyx_NewRef(__pyx_m);
26108 1 : modname = PyObject_GetAttrString(spec, "name");
26109 1 : if (unlikely(!modname)) goto bad;
26110 1 : module = PyModule_NewObject(modname);
26111 1 : Py_DECREF(modname);
26112 1 : if (unlikely(!module)) goto bad;
26113 : #if CYTHON_COMPILING_IN_LIMITED_API
26114 : moddict = module;
26115 : #else
26116 1 : moddict = PyModule_GetDict(module);
26117 1 : if (unlikely(!moddict)) goto bad;
26118 : #endif
26119 1 : if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad;
26120 1 : if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad;
26121 1 : if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad;
26122 1 : if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad;
26123 : return module;
26124 0 : bad:
26125 0 : Py_XDECREF(module);
26126 0 : return NULL;
26127 : }
26128 :
26129 :
26130 1 : static CYTHON_SMALL_CODE int __pyx_pymod_exec__sosfilt(PyObject *__pyx_pyinit_module)
26131 : #endif
26132 : #endif
26133 : {
26134 1 : int stringtab_initialized = 0;
26135 : #if CYTHON_USE_MODULE_STATE
26136 : int pystate_addmodule_run = 0;
26137 : #endif
26138 1 : PyObject *__pyx_t_1 = NULL;
26139 1 : PyObject *__pyx_t_2 = NULL;
26140 1 : PyObject *__pyx_t_3 = NULL;
26141 1 : PyObject *__pyx_t_4 = NULL;
26142 1 : PyObject *__pyx_t_5 = NULL;
26143 1 : int __pyx_t_6;
26144 1 : PyObject *__pyx_t_7 = NULL;
26145 1 : static PyThread_type_lock __pyx_t_8[8];
26146 1 : int __pyx_t_9;
26147 1 : int __pyx_lineno = 0;
26148 1 : const char *__pyx_filename = NULL;
26149 1 : int __pyx_clineno = 0;
26150 : __Pyx_RefNannyDeclarations
26151 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26152 1 : if (__pyx_m) {
26153 0 : if (__pyx_m == __pyx_pyinit_module) return 0;
26154 0 : PyErr_SetString(PyExc_RuntimeError, "Module '_sosfilt' has already been imported. Re-initialisation is not supported.");
26155 0 : return -1;
26156 : }
26157 : #elif PY_MAJOR_VERSION >= 3
26158 : if (__pyx_m) return __Pyx_NewRef(__pyx_m);
26159 : #endif
26160 : /*--- Module creation code ---*/
26161 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26162 1 : __pyx_m = __pyx_pyinit_module;
26163 1 : Py_INCREF(__pyx_m);
26164 : #else
26165 : #if PY_MAJOR_VERSION < 3
26166 : __pyx_m = Py_InitModule4("_sosfilt", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
26167 : if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
26168 : #elif CYTHON_USE_MODULE_STATE
26169 : __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
26170 : {
26171 : int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef);
26172 : __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_sosfilt" pseudovariable */
26173 : if (unlikely((add_module_result < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
26174 : pystate_addmodule_run = 1;
26175 : }
26176 : #else
26177 : __pyx_m = PyModule_Create(&__pyx_moduledef);
26178 : if (unlikely(!__pyx_m)) __PYX_ERR(0, 1, __pyx_L1_error)
26179 : #endif
26180 : #endif
26181 1 : CYTHON_UNUSED_VAR(__pyx_t_1);
26182 1 : __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(0, 1, __pyx_L1_error)
26183 1 : Py_INCREF(__pyx_d);
26184 1 : __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(0, 1, __pyx_L1_error)
26185 1 : __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(0, 1, __pyx_L1_error)
26186 1 : if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26187 : #if CYTHON_REFNANNY
26188 : __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny");
26189 : if (!__Pyx_RefNanny) {
26190 : PyErr_Clear();
26191 : __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny");
26192 : if (!__Pyx_RefNanny)
26193 : Py_FatalError("failed to import 'refnanny' module");
26194 : }
26195 : #endif
26196 1 : __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__sosfilt(void)", 0);
26197 1 : if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26198 : #ifdef __Pxy_PyFrame_Initialize_Offsets
26199 : __Pxy_PyFrame_Initialize_Offsets();
26200 : #endif
26201 1 : __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(0, 1, __pyx_L1_error)
26202 1 : __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(0, 1, __pyx_L1_error)
26203 1 : __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(0, 1, __pyx_L1_error)
26204 : #ifdef __Pyx_CyFunction_USED
26205 1 : if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26206 : #endif
26207 : #ifdef __Pyx_FusedFunction_USED
26208 1 : if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26209 : #endif
26210 : #ifdef __Pyx_Coroutine_USED
26211 : if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26212 : #endif
26213 : #ifdef __Pyx_Generator_USED
26214 : if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26215 : #endif
26216 : #ifdef __Pyx_AsyncGen_USED
26217 : if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26218 : #endif
26219 : #ifdef __Pyx_StopAsyncIteration_USED
26220 : if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26221 : #endif
26222 : /*--- Library function declarations ---*/
26223 : /*--- Threads initialization code ---*/
26224 : #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS
26225 : PyEval_InitThreads();
26226 : #endif
26227 : /*--- Initialize various global constants etc. ---*/
26228 1 : if (__Pyx_InitConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26229 1 : stringtab_initialized = 1;
26230 1 : if (__Pyx_InitGlobals() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26231 : #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT)
26232 : if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26233 : #endif
26234 1 : if (__pyx_module_is_main_scipy__signal___sosfilt) {
26235 0 : if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26236 : }
26237 : #if PY_MAJOR_VERSION >= 3
26238 : {
26239 1 : PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(0, 1, __pyx_L1_error)
26240 1 : if (!PyDict_GetItemString(modules, "scipy.signal._sosfilt")) {
26241 0 : if (unlikely((PyDict_SetItemString(modules, "scipy.signal._sosfilt", __pyx_m) < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
26242 : }
26243 : }
26244 : #endif
26245 : /*--- Builtin init code ---*/
26246 1 : if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26247 : /*--- Constants init code ---*/
26248 1 : if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26249 : /*--- Global type/function init code ---*/
26250 1 : (void)__Pyx_modinit_global_init_code();
26251 1 : (void)__Pyx_modinit_variable_export_code();
26252 1 : (void)__Pyx_modinit_function_export_code();
26253 1 : if (unlikely((__Pyx_modinit_type_init_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
26254 1 : if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(0, 1, __pyx_L1_error)
26255 1 : (void)__Pyx_modinit_variable_import_code();
26256 1 : (void)__Pyx_modinit_function_import_code();
26257 : /*--- Execution code ---*/
26258 : #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED)
26259 : if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26260 : #endif
26261 :
26262 : /* "View.MemoryView":99
26263 : *
26264 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
26265 : * try: # <<<<<<<<<<<<<<
26266 : * if __import__("sys").version_info >= (3, 3):
26267 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26268 : */
26269 : {
26270 1 : __Pyx_PyThreadState_declare
26271 1 : __Pyx_PyThreadState_assign
26272 1 : __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
26273 1 : __Pyx_XGOTREF(__pyx_t_1);
26274 1 : __Pyx_XGOTREF(__pyx_t_2);
26275 1 : __Pyx_XGOTREF(__pyx_t_3);
26276 : /*try:*/ {
26277 :
26278 : /* "View.MemoryView":100
26279 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
26280 : * try:
26281 : * if __import__("sys").version_info >= (3, 3): # <<<<<<<<<<<<<<
26282 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26283 : * else:
26284 : */
26285 1 : __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L2_error)
26286 1 : __Pyx_GOTREF(__pyx_t_4);
26287 1 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_version_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 100, __pyx_L2_error)
26288 1 : __Pyx_GOTREF(__pyx_t_5);
26289 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26290 1 : __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_tuple__16, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 100, __pyx_L2_error)
26291 1 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26292 1 : __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 100, __pyx_L2_error)
26293 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26294 1 : if (__pyx_t_6) {
26295 :
26296 : /* "View.MemoryView":101
26297 : * try:
26298 : * if __import__("sys").version_info >= (3, 3):
26299 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence # <<<<<<<<<<<<<<
26300 : * else:
26301 : * __pyx_collections_abc_Sequence = __import__("collections").Sequence
26302 : */
26303 1 : __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L2_error)
26304 1 : __Pyx_GOTREF(__pyx_t_4);
26305 1 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_abc); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 101, __pyx_L2_error)
26306 1 : __Pyx_GOTREF(__pyx_t_5);
26307 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26308 1 : __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 101, __pyx_L2_error)
26309 1 : __Pyx_GOTREF(__pyx_t_4);
26310 1 : __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
26311 1 : __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
26312 1 : __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_4);
26313 1 : __Pyx_GIVEREF(__pyx_t_4);
26314 1 : __pyx_t_4 = 0;
26315 :
26316 : /* "View.MemoryView":100
26317 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
26318 : * try:
26319 : * if __import__("sys").version_info >= (3, 3): # <<<<<<<<<<<<<<
26320 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26321 : * else:
26322 : */
26323 1 : goto __pyx_L8;
26324 : }
26325 :
26326 : /* "View.MemoryView":103
26327 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26328 : * else:
26329 : * __pyx_collections_abc_Sequence = __import__("collections").Sequence # <<<<<<<<<<<<<<
26330 : * except:
26331 : *
26332 : */
26333 : /*else*/ {
26334 0 : __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin___import__, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 103, __pyx_L2_error)
26335 0 : __Pyx_GOTREF(__pyx_t_4);
26336 0 : __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_Sequence); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 103, __pyx_L2_error)
26337 0 : __Pyx_GOTREF(__pyx_t_5);
26338 0 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26339 0 : __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
26340 0 : __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, __pyx_t_5);
26341 0 : __Pyx_GIVEREF(__pyx_t_5);
26342 0 : __pyx_t_5 = 0;
26343 : }
26344 1 : __pyx_L8:;
26345 :
26346 : /* "View.MemoryView":99
26347 : *
26348 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
26349 : * try: # <<<<<<<<<<<<<<
26350 : * if __import__("sys").version_info >= (3, 3):
26351 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26352 : */
26353 : }
26354 1 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
26355 1 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
26356 1 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
26357 1 : goto __pyx_L7_try_end;
26358 0 : __pyx_L2_error:;
26359 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
26360 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
26361 :
26362 : /* "View.MemoryView":104
26363 : * else:
26364 : * __pyx_collections_abc_Sequence = __import__("collections").Sequence
26365 : * except: # <<<<<<<<<<<<<<
26366 : *
26367 : * __pyx_collections_abc_Sequence = None
26368 : */
26369 : /*except:*/ {
26370 0 : __Pyx_AddTraceback("View.MemoryView", __pyx_clineno, __pyx_lineno, __pyx_filename);
26371 0 : if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(1, 104, __pyx_L4_except_error)
26372 0 : __Pyx_XGOTREF(__pyx_t_5);
26373 0 : __Pyx_XGOTREF(__pyx_t_4);
26374 0 : __Pyx_XGOTREF(__pyx_t_7);
26375 :
26376 : /* "View.MemoryView":106
26377 : * except:
26378 : *
26379 : * __pyx_collections_abc_Sequence = None # <<<<<<<<<<<<<<
26380 : *
26381 : *
26382 : */
26383 0 : __Pyx_INCREF(Py_None);
26384 0 : __Pyx_XGOTREF(__pyx_collections_abc_Sequence);
26385 0 : __Pyx_DECREF_SET(__pyx_collections_abc_Sequence, Py_None);
26386 0 : __Pyx_GIVEREF(Py_None);
26387 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
26388 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
26389 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
26390 0 : goto __pyx_L3_exception_handled;
26391 : }
26392 :
26393 : /* "View.MemoryView":99
26394 : *
26395 : * cdef object __pyx_collections_abc_Sequence "__pyx_collections_abc_Sequence"
26396 : * try: # <<<<<<<<<<<<<<
26397 : * if __import__("sys").version_info >= (3, 3):
26398 : * __pyx_collections_abc_Sequence = __import__("collections.abc").abc.Sequence
26399 : */
26400 0 : __pyx_L4_except_error:;
26401 0 : __Pyx_XGIVEREF(__pyx_t_1);
26402 0 : __Pyx_XGIVEREF(__pyx_t_2);
26403 0 : __Pyx_XGIVEREF(__pyx_t_3);
26404 0 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
26405 0 : goto __pyx_L1_error;
26406 0 : __pyx_L3_exception_handled:;
26407 0 : __Pyx_XGIVEREF(__pyx_t_1);
26408 0 : __Pyx_XGIVEREF(__pyx_t_2);
26409 0 : __Pyx_XGIVEREF(__pyx_t_3);
26410 0 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
26411 1 : __pyx_L7_try_end:;
26412 : }
26413 :
26414 : /* "View.MemoryView":241
26415 : *
26416 : *
26417 : * try: # <<<<<<<<<<<<<<
26418 : * count = __pyx_collections_abc_Sequence.count
26419 : * index = __pyx_collections_abc_Sequence.index
26420 : */
26421 : {
26422 1 : __Pyx_PyThreadState_declare
26423 1 : __Pyx_PyThreadState_assign
26424 1 : __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
26425 1 : __Pyx_XGOTREF(__pyx_t_3);
26426 1 : __Pyx_XGOTREF(__pyx_t_2);
26427 1 : __Pyx_XGOTREF(__pyx_t_1);
26428 : /*try:*/ {
26429 :
26430 : /* "View.MemoryView":242
26431 : *
26432 : * try:
26433 : * count = __pyx_collections_abc_Sequence.count # <<<<<<<<<<<<<<
26434 : * index = __pyx_collections_abc_Sequence.index
26435 : * except:
26436 : */
26437 1 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 242, __pyx_L11_error)
26438 1 : __Pyx_GOTREF(__pyx_t_7);
26439 1 : if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(1, 242, __pyx_L11_error)
26440 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26441 1 : PyType_Modified(__pyx_array_type);
26442 :
26443 : /* "View.MemoryView":243
26444 : * try:
26445 : * count = __pyx_collections_abc_Sequence.count
26446 : * index = __pyx_collections_abc_Sequence.index # <<<<<<<<<<<<<<
26447 : * except:
26448 : * pass
26449 : */
26450 1 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 243, __pyx_L11_error)
26451 1 : __Pyx_GOTREF(__pyx_t_7);
26452 1 : if (__Pyx_SetItemOnTypeDict(__pyx_array_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(1, 243, __pyx_L11_error)
26453 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26454 1 : PyType_Modified(__pyx_array_type);
26455 :
26456 : /* "View.MemoryView":241
26457 : *
26458 : *
26459 : * try: # <<<<<<<<<<<<<<
26460 : * count = __pyx_collections_abc_Sequence.count
26461 : * index = __pyx_collections_abc_Sequence.index
26462 : */
26463 : }
26464 1 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
26465 1 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
26466 1 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
26467 1 : goto __pyx_L16_try_end;
26468 0 : __pyx_L11_error:;
26469 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
26470 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
26471 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
26472 :
26473 : /* "View.MemoryView":244
26474 : * count = __pyx_collections_abc_Sequence.count
26475 : * index = __pyx_collections_abc_Sequence.index
26476 : * except: # <<<<<<<<<<<<<<
26477 : * pass
26478 : *
26479 : */
26480 : /*except:*/ {
26481 0 : __Pyx_ErrRestore(0,0,0);
26482 0 : goto __pyx_L12_exception_handled;
26483 : }
26484 0 : __pyx_L12_exception_handled:;
26485 0 : __Pyx_XGIVEREF(__pyx_t_3);
26486 0 : __Pyx_XGIVEREF(__pyx_t_2);
26487 0 : __Pyx_XGIVEREF(__pyx_t_1);
26488 0 : __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
26489 1 : __pyx_L16_try_end:;
26490 : }
26491 :
26492 : /* "View.MemoryView":309
26493 : * return self.name
26494 : *
26495 : * cdef generic = Enum("<strided and direct or indirect>") # <<<<<<<<<<<<<<
26496 : * cdef strided = Enum("<strided and direct>") # default
26497 : * cdef indirect = Enum("<strided and indirect>")
26498 : */
26499 1 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 309, __pyx_L1_error)
26500 1 : __Pyx_GOTREF(__pyx_t_7);
26501 1 : __Pyx_XGOTREF(generic);
26502 1 : __Pyx_DECREF_SET(generic, __pyx_t_7);
26503 1 : __Pyx_GIVEREF(__pyx_t_7);
26504 1 : __pyx_t_7 = 0;
26505 :
26506 : /* "View.MemoryView":310
26507 : *
26508 : * cdef generic = Enum("<strided and direct or indirect>")
26509 : * cdef strided = Enum("<strided and direct>") # default # <<<<<<<<<<<<<<
26510 : * cdef indirect = Enum("<strided and indirect>")
26511 : *
26512 : */
26513 1 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 310, __pyx_L1_error)
26514 1 : __Pyx_GOTREF(__pyx_t_7);
26515 1 : __Pyx_XGOTREF(strided);
26516 1 : __Pyx_DECREF_SET(strided, __pyx_t_7);
26517 1 : __Pyx_GIVEREF(__pyx_t_7);
26518 1 : __pyx_t_7 = 0;
26519 :
26520 : /* "View.MemoryView":311
26521 : * cdef generic = Enum("<strided and direct or indirect>")
26522 : * cdef strided = Enum("<strided and direct>") # default
26523 : * cdef indirect = Enum("<strided and indirect>") # <<<<<<<<<<<<<<
26524 : *
26525 : *
26526 : */
26527 1 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 311, __pyx_L1_error)
26528 1 : __Pyx_GOTREF(__pyx_t_7);
26529 1 : __Pyx_XGOTREF(indirect);
26530 1 : __Pyx_DECREF_SET(indirect, __pyx_t_7);
26531 1 : __Pyx_GIVEREF(__pyx_t_7);
26532 1 : __pyx_t_7 = 0;
26533 :
26534 : /* "View.MemoryView":314
26535 : *
26536 : *
26537 : * cdef contiguous = Enum("<contiguous and direct>") # <<<<<<<<<<<<<<
26538 : * cdef indirect_contiguous = Enum("<contiguous and indirect>")
26539 : *
26540 : */
26541 1 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 314, __pyx_L1_error)
26542 1 : __Pyx_GOTREF(__pyx_t_7);
26543 1 : __Pyx_XGOTREF(contiguous);
26544 1 : __Pyx_DECREF_SET(contiguous, __pyx_t_7);
26545 1 : __Pyx_GIVEREF(__pyx_t_7);
26546 1 : __pyx_t_7 = 0;
26547 :
26548 : /* "View.MemoryView":315
26549 : *
26550 : * cdef contiguous = Enum("<contiguous and direct>")
26551 : * cdef indirect_contiguous = Enum("<contiguous and indirect>") # <<<<<<<<<<<<<<
26552 : *
26553 : *
26554 : */
26555 1 : __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 315, __pyx_L1_error)
26556 1 : __Pyx_GOTREF(__pyx_t_7);
26557 1 : __Pyx_XGOTREF(indirect_contiguous);
26558 1 : __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_7);
26559 1 : __Pyx_GIVEREF(__pyx_t_7);
26560 1 : __pyx_t_7 = 0;
26561 :
26562 : /* "View.MemoryView":323
26563 : *
26564 : *
26565 : * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<<
26566 : * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [
26567 : * PyThread_allocate_lock(),
26568 : */
26569 1 : __pyx_memoryview_thread_locks_used = 0;
26570 :
26571 : /* "View.MemoryView":324
26572 : *
26573 : * cdef int __pyx_memoryview_thread_locks_used = 0
26574 : * cdef PyThread_type_lock[8] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<<
26575 : * PyThread_allocate_lock(),
26576 : * PyThread_allocate_lock(),
26577 : */
26578 1 : __pyx_t_8[0] = PyThread_allocate_lock();
26579 1 : __pyx_t_8[1] = PyThread_allocate_lock();
26580 1 : __pyx_t_8[2] = PyThread_allocate_lock();
26581 1 : __pyx_t_8[3] = PyThread_allocate_lock();
26582 1 : __pyx_t_8[4] = PyThread_allocate_lock();
26583 1 : __pyx_t_8[5] = PyThread_allocate_lock();
26584 1 : __pyx_t_8[6] = PyThread_allocate_lock();
26585 1 : __pyx_t_8[7] = PyThread_allocate_lock();
26586 1 : memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_8, sizeof(__pyx_memoryview_thread_locks[0]) * (8));
26587 :
26588 : /* "View.MemoryView":982
26589 : *
26590 : *
26591 : * try: # <<<<<<<<<<<<<<
26592 : * count = __pyx_collections_abc_Sequence.count
26593 : * index = __pyx_collections_abc_Sequence.index
26594 : */
26595 : {
26596 1 : __Pyx_PyThreadState_declare
26597 1 : __Pyx_PyThreadState_assign
26598 1 : __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3);
26599 1 : __Pyx_XGOTREF(__pyx_t_1);
26600 1 : __Pyx_XGOTREF(__pyx_t_2);
26601 1 : __Pyx_XGOTREF(__pyx_t_3);
26602 : /*try:*/ {
26603 :
26604 : /* "View.MemoryView":983
26605 : *
26606 : * try:
26607 : * count = __pyx_collections_abc_Sequence.count # <<<<<<<<<<<<<<
26608 : * index = __pyx_collections_abc_Sequence.index
26609 : * except:
26610 : */
26611 1 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_count); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 983, __pyx_L17_error)
26612 1 : __Pyx_GOTREF(__pyx_t_7);
26613 1 : if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_count, __pyx_t_7) < 0) __PYX_ERR(1, 983, __pyx_L17_error)
26614 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26615 1 : PyType_Modified(__pyx_memoryviewslice_type);
26616 :
26617 : /* "View.MemoryView":984
26618 : * try:
26619 : * count = __pyx_collections_abc_Sequence.count
26620 : * index = __pyx_collections_abc_Sequence.index # <<<<<<<<<<<<<<
26621 : * except:
26622 : * pass
26623 : */
26624 1 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 984, __pyx_L17_error)
26625 1 : __Pyx_GOTREF(__pyx_t_7);
26626 1 : if (__Pyx_SetItemOnTypeDict(__pyx_memoryviewslice_type, __pyx_n_s_index, __pyx_t_7) < 0) __PYX_ERR(1, 984, __pyx_L17_error)
26627 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26628 1 : PyType_Modified(__pyx_memoryviewslice_type);
26629 :
26630 : /* "View.MemoryView":982
26631 : *
26632 : *
26633 : * try: # <<<<<<<<<<<<<<
26634 : * count = __pyx_collections_abc_Sequence.count
26635 : * index = __pyx_collections_abc_Sequence.index
26636 : */
26637 : }
26638 1 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
26639 1 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
26640 1 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
26641 1 : goto __pyx_L22_try_end;
26642 0 : __pyx_L17_error:;
26643 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
26644 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
26645 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
26646 :
26647 : /* "View.MemoryView":985
26648 : * count = __pyx_collections_abc_Sequence.count
26649 : * index = __pyx_collections_abc_Sequence.index
26650 : * except: # <<<<<<<<<<<<<<
26651 : * pass
26652 : *
26653 : */
26654 : /*except:*/ {
26655 0 : __Pyx_ErrRestore(0,0,0);
26656 0 : goto __pyx_L18_exception_handled;
26657 : }
26658 0 : __pyx_L18_exception_handled:;
26659 0 : __Pyx_XGIVEREF(__pyx_t_1);
26660 0 : __Pyx_XGIVEREF(__pyx_t_2);
26661 0 : __Pyx_XGIVEREF(__pyx_t_3);
26662 0 : __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
26663 1 : __pyx_L22_try_end:;
26664 : }
26665 :
26666 : /* "View.MemoryView":988
26667 : * pass
26668 : *
26669 : * try: # <<<<<<<<<<<<<<
26670 : * if __pyx_collections_abc_Sequence:
26671 : *
26672 : */
26673 : {
26674 1 : __Pyx_PyThreadState_declare
26675 1 : __Pyx_PyThreadState_assign
26676 1 : __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1);
26677 1 : __Pyx_XGOTREF(__pyx_t_3);
26678 1 : __Pyx_XGOTREF(__pyx_t_2);
26679 1 : __Pyx_XGOTREF(__pyx_t_1);
26680 : /*try:*/ {
26681 :
26682 : /* "View.MemoryView":989
26683 : *
26684 : * try:
26685 : * if __pyx_collections_abc_Sequence: # <<<<<<<<<<<<<<
26686 : *
26687 : *
26688 : */
26689 1 : __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_collections_abc_Sequence); if (unlikely((__pyx_t_6 < 0))) __PYX_ERR(1, 989, __pyx_L23_error)
26690 1 : if (__pyx_t_6) {
26691 :
26692 : /* "View.MemoryView":993
26693 : *
26694 : *
26695 : * __pyx_collections_abc_Sequence.register(_memoryviewslice) # <<<<<<<<<<<<<<
26696 : * __pyx_collections_abc_Sequence.register(array)
26697 : * except:
26698 : */
26699 1 : __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 993, __pyx_L23_error)
26700 1 : __Pyx_GOTREF(__pyx_t_7);
26701 1 : __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_t_7, ((PyObject *)__pyx_memoryviewslice_type)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 993, __pyx_L23_error)
26702 1 : __Pyx_GOTREF(__pyx_t_4);
26703 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26704 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26705 :
26706 : /* "View.MemoryView":994
26707 : *
26708 : * __pyx_collections_abc_Sequence.register(_memoryviewslice)
26709 : * __pyx_collections_abc_Sequence.register(array) # <<<<<<<<<<<<<<
26710 : * except:
26711 : * pass # ignore failure, it's a minor issue
26712 : */
26713 1 : __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_collections_abc_Sequence, __pyx_n_s_register); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 994, __pyx_L23_error)
26714 1 : __Pyx_GOTREF(__pyx_t_4);
26715 1 : __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_array_type)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 994, __pyx_L23_error)
26716 1 : __Pyx_GOTREF(__pyx_t_7);
26717 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26718 2 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26719 :
26720 : /* "View.MemoryView":989
26721 : *
26722 : * try:
26723 : * if __pyx_collections_abc_Sequence: # <<<<<<<<<<<<<<
26724 : *
26725 : *
26726 : */
26727 : }
26728 :
26729 : /* "View.MemoryView":988
26730 : * pass
26731 : *
26732 : * try: # <<<<<<<<<<<<<<
26733 : * if __pyx_collections_abc_Sequence:
26734 : *
26735 : */
26736 : }
26737 1 : __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
26738 1 : __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
26739 1 : __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
26740 1 : goto __pyx_L28_try_end;
26741 0 : __pyx_L23_error:;
26742 0 : __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
26743 0 : __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
26744 0 : __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
26745 :
26746 : /* "View.MemoryView":995
26747 : * __pyx_collections_abc_Sequence.register(_memoryviewslice)
26748 : * __pyx_collections_abc_Sequence.register(array)
26749 : * except: # <<<<<<<<<<<<<<
26750 : * pass # ignore failure, it's a minor issue
26751 : *
26752 : */
26753 : /*except:*/ {
26754 0 : __Pyx_ErrRestore(0,0,0);
26755 0 : goto __pyx_L24_exception_handled;
26756 : }
26757 0 : __pyx_L24_exception_handled:;
26758 0 : __Pyx_XGIVEREF(__pyx_t_3);
26759 0 : __Pyx_XGIVEREF(__pyx_t_2);
26760 0 : __Pyx_XGIVEREF(__pyx_t_1);
26761 0 : __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1);
26762 1 : __pyx_L28_try_end:;
26763 : }
26764 :
26765 : /* "(tree fragment)":1
26766 : * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<<
26767 : * cdef object __pyx_PickleError
26768 : * cdef object __pyx_result
26769 : */
26770 1 : __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 1, __pyx_L1_error)
26771 1 : __Pyx_GOTREF(__pyx_t_7);
26772 1 : if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_7) < 0) __PYX_ERR(1, 1, __pyx_L1_error)
26773 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26774 :
26775 : /* "scipy/signal/_sosfilt.pyx":4
26776 : * cimport cython
26777 : *
26778 : * np.import_array() # <<<<<<<<<<<<<<
26779 : *
26780 : * ctypedef fused DTYPE_floating_t:
26781 : */
26782 1 : __pyx_t_9 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(0, 4, __pyx_L1_error)
26783 :
26784 : /* "scipy/signal/_sosfilt.pyx":59
26785 : *
26786 : *
26787 : * @cython.cdivision(True) # <<<<<<<<<<<<<<
26788 : * @cython.boundscheck(False)
26789 : * @cython.wraparound(False)
26790 : */
26791 1 : __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5scipy_6signal_8_sosfilt_1_sosfilt_object, 0, __pyx_n_s_sosfilt_object, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__27)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 59, __pyx_L1_error)
26792 1 : __Pyx_GOTREF(__pyx_t_7);
26793 1 : if (PyDict_SetItem(__pyx_d, __pyx_n_s_sosfilt_object, __pyx_t_7) < 0) __PYX_ERR(0, 59, __pyx_L1_error)
26794 1 : __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
26795 :
26796 : /* "scipy/signal/_sosfilt.pyx":82
26797 : *
26798 : *
26799 : * def _sosfilt(DTYPE_t [:, ::1] sos, # <<<<<<<<<<<<<<
26800 : * DTYPE_t [:, ::1] x,
26801 : * DTYPE_t [:, :, ::1] zi):
26802 : */
26803 1 : __pyx_t_7 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 82, __pyx_L1_error)
26804 1 : __Pyx_GOTREF(__pyx_t_7);
26805 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_5scipy_6signal_8_sosfilt_5_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26806 1 : __Pyx_GOTREF(__pyx_t_4);
26807 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26808 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_float, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26809 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26810 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_5scipy_6signal_8_sosfilt_7_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26811 1 : __Pyx_GOTREF(__pyx_t_4);
26812 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26813 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_kp_s_float_complex, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26814 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26815 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_5scipy_6signal_8_sosfilt_9_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26816 1 : __Pyx_GOTREF(__pyx_t_4);
26817 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26818 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_double, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26819 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26820 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_5scipy_6signal_8_sosfilt_11_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26821 1 : __Pyx_GOTREF(__pyx_t_4);
26822 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26823 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_kp_s_double_complex, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26824 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26825 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_5scipy_6signal_8_sosfilt_13_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26826 1 : __Pyx_GOTREF(__pyx_t_4);
26827 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26828 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_kp_s_long_double, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26829 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26830 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_5scipy_6signal_8_sosfilt_15_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26831 1 : __Pyx_GOTREF(__pyx_t_4);
26832 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26833 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_kp_s_long_double_complex, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26834 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26835 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_5scipy_6signal_8_sosfilt_17_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26836 1 : __Pyx_GOTREF(__pyx_t_4);
26837 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26838 1 : if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_object, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26839 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26840 1 : __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_5scipy_6signal_8_sosfilt_3_sosfilt, 0, __pyx_n_s_sosfilt, NULL, __pyx_n_s_scipy_signal__sosfilt, __pyx_d, ((PyObject *)__pyx_codeobj__29)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 82, __pyx_L1_error)
26841 1 : __Pyx_GOTREF(__pyx_t_4);
26842 1 : if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults), 1)) __PYX_ERR(0, 82, __pyx_L1_error)
26843 1 : __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 82, __pyx_L1_error)
26844 1 : __Pyx_GOTREF(__pyx_t_5);
26845 1 : __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_4)->__pyx_arg__fused_sigindex = __pyx_t_5;
26846 1 : __Pyx_GIVEREF(__pyx_t_5);
26847 1 : __pyx_t_5 = 0;
26848 2 : __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_empty_tuple);
26849 1 : ((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_7;
26850 1 : __Pyx_GIVEREF(__pyx_t_7);
26851 1 : __pyx_t_7 = 0;
26852 1 : if (PyDict_SetItem(__pyx_d, __pyx_n_s_sosfilt, __pyx_t_4) < 0) __PYX_ERR(0, 82, __pyx_L1_error)
26853 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26854 :
26855 : /* "scipy/signal/_sosfilt.pyx":1
26856 : * cimport numpy as np # <<<<<<<<<<<<<<
26857 : * cimport cython
26858 : *
26859 : */
26860 1 : __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1, __pyx_L1_error)
26861 1 : __Pyx_GOTREF(__pyx_t_4);
26862 1 : if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_4) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
26863 1 : __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
26864 :
26865 : /*--- Wrapped vars code ---*/
26866 :
26867 1 : goto __pyx_L0;
26868 0 : __pyx_L1_error:;
26869 0 : __Pyx_XDECREF(__pyx_t_4);
26870 0 : __Pyx_XDECREF(__pyx_t_5);
26871 0 : __Pyx_XDECREF(__pyx_t_7);
26872 0 : if (__pyx_m) {
26873 0 : if (__pyx_d && stringtab_initialized) {
26874 0 : __Pyx_AddTraceback("init scipy.signal._sosfilt", __pyx_clineno, __pyx_lineno, __pyx_filename);
26875 : }
26876 : #if !CYTHON_USE_MODULE_STATE
26877 0 : Py_CLEAR(__pyx_m);
26878 : #else
26879 : Py_DECREF(__pyx_m);
26880 : if (pystate_addmodule_run) {
26881 : PyObject *tp, *value, *tb;
26882 : PyErr_Fetch(&tp, &value, &tb);
26883 : PyState_RemoveModule(&__pyx_moduledef);
26884 : PyErr_Restore(tp, value, tb);
26885 : }
26886 : #endif
26887 0 : } else if (!PyErr_Occurred()) {
26888 0 : PyErr_SetString(PyExc_ImportError, "init scipy.signal._sosfilt");
26889 : }
26890 0 : __pyx_L0:;
26891 1 : __Pyx_RefNannyFinishContext();
26892 : #if CYTHON_PEP489_MULTI_PHASE_INIT
26893 1 : return (__pyx_m != NULL) ? 0 : -1;
26894 : #elif PY_MAJOR_VERSION >= 3
26895 : return __pyx_m;
26896 : #else
26897 : return;
26898 : #endif
26899 : }
26900 : /* #### Code section: cleanup_globals ### */
26901 : /* #### Code section: cleanup_module ### */
26902 : /* #### Code section: main_method ### */
26903 : /* #### Code section: utility_code_pragmas ### */
26904 : #ifdef _MSC_VER
26905 : #pragma warning( push )
26906 : /* Warning 4127: conditional expression is constant
26907 : * Cython uses constant conditional expressions to allow in inline functions to be optimized at
26908 : * compile-time, so this warning is not useful
26909 : */
26910 : #pragma warning( disable : 4127 )
26911 : #endif
26912 :
26913 :
26914 :
26915 : /* #### Code section: utility_code_def ### */
26916 :
26917 : /* --- Runtime support code --- */
26918 : /* Refnanny */
26919 : #if CYTHON_REFNANNY
26920 : static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) {
26921 : PyObject *m = NULL, *p = NULL;
26922 : void *r = NULL;
26923 : m = PyImport_ImportModule(modname);
26924 : if (!m) goto end;
26925 : p = PyObject_GetAttrString(m, "RefNannyAPI");
26926 : if (!p) goto end;
26927 : r = PyLong_AsVoidPtr(p);
26928 : end:
26929 : Py_XDECREF(p);
26930 : Py_XDECREF(m);
26931 : return (__Pyx_RefNannyAPIStruct *)r;
26932 : }
26933 : #endif
26934 :
26935 : /* PyErrExceptionMatches */
26936 : #if CYTHON_FAST_THREAD_STATE
26937 0 : static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
26938 0 : Py_ssize_t i, n;
26939 0 : n = PyTuple_GET_SIZE(tuple);
26940 : #if PY_MAJOR_VERSION >= 3
26941 0 : for (i=0; i<n; i++) {
26942 0 : if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
26943 : }
26944 : #endif
26945 0 : for (i=0; i<n; i++) {
26946 0 : if (__Pyx_PyErr_GivenExceptionMatches(exc_type, PyTuple_GET_ITEM(tuple, i))) return 1;
26947 : }
26948 : return 0;
26949 : }
26950 3 : static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err) {
26951 3 : int result;
26952 3 : PyObject *exc_type;
26953 : #if PY_VERSION_HEX >= 0x030C00A6
26954 3 : PyObject *current_exception = tstate->current_exception;
26955 3 : if (unlikely(!current_exception)) return 0;
26956 3 : exc_type = (PyObject*) Py_TYPE(current_exception);
26957 3 : if (exc_type == err) return 1;
26958 : #else
26959 : exc_type = tstate->curexc_type;
26960 : if (exc_type == err) return 1;
26961 : if (unlikely(!exc_type)) return 0;
26962 : #endif
26963 : #if CYTHON_AVOID_BORROWED_REFS
26964 : Py_INCREF(exc_type);
26965 : #endif
26966 0 : if (unlikely(PyTuple_Check(err))) {
26967 0 : result = __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err);
26968 : } else {
26969 0 : result = __Pyx_PyErr_GivenExceptionMatches(exc_type, err);
26970 : }
26971 : #if CYTHON_AVOID_BORROWED_REFS
26972 : Py_DECREF(exc_type);
26973 : #endif
26974 : return result;
26975 : }
26976 : #endif
26977 :
26978 : /* PyErrFetchRestore */
26979 : #if CYTHON_FAST_THREAD_STATE
26980 3 : static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
26981 : #if PY_VERSION_HEX >= 0x030C00A6
26982 3 : PyObject *tmp_value;
26983 3 : assert(type == NULL || (value != NULL && type == (PyObject*) Py_TYPE(value)));
26984 3 : if (value) {
26985 : #if CYTHON_COMPILING_IN_CPYTHON
26986 0 : if (unlikely(((PyBaseExceptionObject*) value)->traceback != tb))
26987 : #endif
26988 0 : PyException_SetTraceback(value, tb);
26989 : }
26990 3 : tmp_value = tstate->current_exception;
26991 3 : tstate->current_exception = value;
26992 3 : Py_XDECREF(tmp_value);
26993 3 : Py_XDECREF(type);
26994 3 : Py_XDECREF(tb);
26995 : #else
26996 : PyObject *tmp_type, *tmp_value, *tmp_tb;
26997 : tmp_type = tstate->curexc_type;
26998 : tmp_value = tstate->curexc_value;
26999 : tmp_tb = tstate->curexc_traceback;
27000 : tstate->curexc_type = type;
27001 : tstate->curexc_value = value;
27002 : tstate->curexc_traceback = tb;
27003 : Py_XDECREF(tmp_type);
27004 : Py_XDECREF(tmp_value);
27005 : Py_XDECREF(tmp_tb);
27006 : #endif
27007 3 : }
27008 0 : static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
27009 : #if PY_VERSION_HEX >= 0x030C00A6
27010 0 : PyObject* exc_value;
27011 0 : exc_value = tstate->current_exception;
27012 0 : tstate->current_exception = 0;
27013 0 : *value = exc_value;
27014 0 : *type = NULL;
27015 0 : *tb = NULL;
27016 0 : if (exc_value) {
27017 0 : *type = (PyObject*) Py_TYPE(exc_value);
27018 0 : Py_INCREF(*type);
27019 : #if CYTHON_COMPILING_IN_CPYTHON
27020 0 : *tb = ((PyBaseExceptionObject*) exc_value)->traceback;
27021 0 : Py_XINCREF(*tb);
27022 : #else
27023 : *tb = PyException_GetTraceback(exc_value);
27024 : #endif
27025 : }
27026 : #else
27027 : *type = tstate->curexc_type;
27028 : *value = tstate->curexc_value;
27029 : *tb = tstate->curexc_traceback;
27030 : tstate->curexc_type = 0;
27031 : tstate->curexc_value = 0;
27032 : tstate->curexc_traceback = 0;
27033 : #endif
27034 0 : }
27035 : #endif
27036 :
27037 : /* PyObjectGetAttrStr */
27038 : #if CYTHON_USE_TYPE_SLOTS
27039 590 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
27040 590 : PyTypeObject* tp = Py_TYPE(obj);
27041 590 : if (likely(tp->tp_getattro))
27042 590 : return tp->tp_getattro(obj, attr_name);
27043 : #if PY_MAJOR_VERSION < 3
27044 : if (likely(tp->tp_getattr))
27045 : return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
27046 : #endif
27047 0 : return PyObject_GetAttr(obj, attr_name);
27048 : }
27049 : #endif
27050 :
27051 : /* PyObjectGetAttrStrNoError */
27052 : #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
27053 3 : static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) {
27054 3 : __Pyx_PyThreadState_declare
27055 3 : __Pyx_PyThreadState_assign
27056 3 : if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
27057 3 : __Pyx_PyErr_Clear();
27058 3 : }
27059 : #endif
27060 26 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) {
27061 26 : PyObject *result;
27062 : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
27063 : (void) PyObject_GetOptionalAttr(obj, attr_name, &result);
27064 : return result;
27065 : #else
27066 : #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1
27067 26 : PyTypeObject* tp = Py_TYPE(obj);
27068 26 : if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) {
27069 2 : return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1);
27070 : }
27071 : #endif
27072 24 : result = __Pyx_PyObject_GetAttrStr(obj, attr_name);
27073 24 : if (unlikely(!result)) {
27074 3 : __Pyx_PyObject_GetAttrStr_ClearAttributeError();
27075 : }
27076 : return result;
27077 : #endif
27078 : }
27079 :
27080 : /* GetBuiltinName */
27081 12 : static PyObject *__Pyx_GetBuiltinName(PyObject *name) {
27082 12 : PyObject* result = __Pyx_PyObject_GetAttrStrNoError(__pyx_b, name);
27083 12 : if (unlikely(!result) && !PyErr_Occurred()) {
27084 0 : PyErr_Format(PyExc_NameError,
27085 : #if PY_MAJOR_VERSION >= 3
27086 : "name '%U' is not defined", name);
27087 : #else
27088 : "name '%.200s' is not defined", PyString_AS_STRING(name));
27089 : #endif
27090 : }
27091 12 : return result;
27092 : }
27093 :
27094 : /* TupleAndListFromArray */
27095 : #if CYTHON_COMPILING_IN_CPYTHON
27096 : static CYTHON_INLINE void __Pyx_copy_object_array(PyObject *const *CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
27097 : PyObject *v;
27098 : Py_ssize_t i;
27099 : for (i = 0; i < length; i++) {
27100 : v = dest[i] = src[i];
27101 : Py_INCREF(v);
27102 : }
27103 : }
27104 : static CYTHON_INLINE PyObject *
27105 : __Pyx_PyTuple_FromArray(PyObject *const *src, Py_ssize_t n)
27106 : {
27107 : PyObject *res;
27108 : if (n <= 0) {
27109 : Py_INCREF(__pyx_empty_tuple);
27110 : return __pyx_empty_tuple;
27111 : }
27112 : res = PyTuple_New(n);
27113 : if (unlikely(res == NULL)) return NULL;
27114 : __Pyx_copy_object_array(src, ((PyTupleObject*)res)->ob_item, n);
27115 : return res;
27116 : }
27117 : static CYTHON_INLINE PyObject *
27118 : __Pyx_PyList_FromArray(PyObject *const *src, Py_ssize_t n)
27119 : {
27120 : PyObject *res;
27121 : if (n <= 0) {
27122 : return PyList_New(0);
27123 : }
27124 : res = PyList_New(n);
27125 : if (unlikely(res == NULL)) return NULL;
27126 : __Pyx_copy_object_array(src, ((PyListObject*)res)->ob_item, n);
27127 : return res;
27128 : }
27129 : #endif
27130 :
27131 : /* BytesEquals */
27132 : static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) {
27133 : #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
27134 : return PyObject_RichCompareBool(s1, s2, equals);
27135 : #else
27136 : if (s1 == s2) {
27137 : return (equals == Py_EQ);
27138 : } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) {
27139 : const char *ps1, *ps2;
27140 : Py_ssize_t length = PyBytes_GET_SIZE(s1);
27141 : if (length != PyBytes_GET_SIZE(s2))
27142 : return (equals == Py_NE);
27143 : ps1 = PyBytes_AS_STRING(s1);
27144 : ps2 = PyBytes_AS_STRING(s2);
27145 : if (ps1[0] != ps2[0]) {
27146 : return (equals == Py_NE);
27147 : } else if (length == 1) {
27148 : return (equals == Py_EQ);
27149 : } else {
27150 : int result;
27151 : #if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000)
27152 : Py_hash_t hash1, hash2;
27153 : hash1 = ((PyBytesObject*)s1)->ob_shash;
27154 : hash2 = ((PyBytesObject*)s2)->ob_shash;
27155 : if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
27156 : return (equals == Py_NE);
27157 : }
27158 : #endif
27159 : result = memcmp(ps1, ps2, (size_t)length);
27160 : return (equals == Py_EQ) ? (result == 0) : (result != 0);
27161 : }
27162 : } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) {
27163 : return (equals == Py_NE);
27164 : } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) {
27165 : return (equals == Py_NE);
27166 : } else {
27167 : int result;
27168 : PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
27169 : if (!py_result)
27170 : return -1;
27171 : result = __Pyx_PyObject_IsTrue(py_result);
27172 : Py_DECREF(py_result);
27173 : return result;
27174 : }
27175 : #endif
27176 : }
27177 :
27178 : /* UnicodeEquals */
27179 0 : static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) {
27180 : #if CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API
27181 : return PyObject_RichCompareBool(s1, s2, equals);
27182 : #else
27183 : #if PY_MAJOR_VERSION < 3
27184 : PyObject* owned_ref = NULL;
27185 : #endif
27186 0 : int s1_is_unicode, s2_is_unicode;
27187 0 : if (s1 == s2) {
27188 0 : goto return_eq;
27189 : }
27190 0 : s1_is_unicode = PyUnicode_CheckExact(s1);
27191 0 : s2_is_unicode = PyUnicode_CheckExact(s2);
27192 : #if PY_MAJOR_VERSION < 3
27193 : if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) {
27194 : owned_ref = PyUnicode_FromObject(s2);
27195 : if (unlikely(!owned_ref))
27196 : return -1;
27197 : s2 = owned_ref;
27198 : s2_is_unicode = 1;
27199 : } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) {
27200 : owned_ref = PyUnicode_FromObject(s1);
27201 : if (unlikely(!owned_ref))
27202 : return -1;
27203 : s1 = owned_ref;
27204 : s1_is_unicode = 1;
27205 : } else if (((!s2_is_unicode) & (!s1_is_unicode))) {
27206 : return __Pyx_PyBytes_Equals(s1, s2, equals);
27207 : }
27208 : #endif
27209 0 : if (s1_is_unicode & s2_is_unicode) {
27210 0 : Py_ssize_t length;
27211 0 : int kind;
27212 0 : void *data1, *data2;
27213 0 : if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0))
27214 : return -1;
27215 0 : length = __Pyx_PyUnicode_GET_LENGTH(s1);
27216 0 : if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) {
27217 0 : goto return_ne;
27218 : }
27219 : #if CYTHON_USE_UNICODE_INTERNALS
27220 : {
27221 0 : Py_hash_t hash1, hash2;
27222 : #if CYTHON_PEP393_ENABLED
27223 0 : hash1 = ((PyASCIIObject*)s1)->hash;
27224 0 : hash2 = ((PyASCIIObject*)s2)->hash;
27225 : #else
27226 : hash1 = ((PyUnicodeObject*)s1)->hash;
27227 : hash2 = ((PyUnicodeObject*)s2)->hash;
27228 : #endif
27229 0 : if (hash1 != hash2 && hash1 != -1 && hash2 != -1) {
27230 0 : goto return_ne;
27231 : }
27232 : }
27233 : #endif
27234 0 : kind = __Pyx_PyUnicode_KIND(s1);
27235 0 : if (kind != __Pyx_PyUnicode_KIND(s2)) {
27236 0 : goto return_ne;
27237 : }
27238 0 : data1 = __Pyx_PyUnicode_DATA(s1);
27239 0 : data2 = __Pyx_PyUnicode_DATA(s2);
27240 0 : if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) {
27241 0 : goto return_ne;
27242 0 : } else if (length == 1) {
27243 0 : goto return_eq;
27244 : } else {
27245 0 : int result = memcmp(data1, data2, (size_t)(length * kind));
27246 : #if PY_MAJOR_VERSION < 3
27247 : Py_XDECREF(owned_ref);
27248 : #endif
27249 0 : return (equals == Py_EQ) ? (result == 0) : (result != 0);
27250 : }
27251 0 : } else if ((s1 == Py_None) & s2_is_unicode) {
27252 0 : goto return_ne;
27253 0 : } else if ((s2 == Py_None) & s1_is_unicode) {
27254 0 : goto return_ne;
27255 : } else {
27256 0 : int result;
27257 0 : PyObject* py_result = PyObject_RichCompare(s1, s2, equals);
27258 : #if PY_MAJOR_VERSION < 3
27259 : Py_XDECREF(owned_ref);
27260 : #endif
27261 0 : if (!py_result)
27262 : return -1;
27263 0 : result = __Pyx_PyObject_IsTrue(py_result);
27264 0 : Py_DECREF(py_result);
27265 0 : return result;
27266 : }
27267 0 : return_eq:
27268 : #if PY_MAJOR_VERSION < 3
27269 : Py_XDECREF(owned_ref);
27270 : #endif
27271 0 : return (equals == Py_EQ);
27272 0 : return_ne:
27273 : #if PY_MAJOR_VERSION < 3
27274 : Py_XDECREF(owned_ref);
27275 : #endif
27276 0 : return (equals == Py_NE);
27277 : #endif
27278 : }
27279 :
27280 : /* fastcall */
27281 : #if CYTHON_METH_FASTCALL
27282 0 : static CYTHON_INLINE PyObject * __Pyx_GetKwValue_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues, PyObject *s)
27283 : {
27284 0 : Py_ssize_t i, n = PyTuple_GET_SIZE(kwnames);
27285 0 : for (i = 0; i < n; i++)
27286 : {
27287 0 : if (s == PyTuple_GET_ITEM(kwnames, i)) return kwvalues[i];
27288 : }
27289 0 : for (i = 0; i < n; i++)
27290 : {
27291 0 : int eq = __Pyx_PyUnicode_Equals(s, PyTuple_GET_ITEM(kwnames, i), Py_EQ);
27292 0 : if (unlikely(eq != 0)) {
27293 0 : if (unlikely(eq < 0)) return NULL;
27294 0 : return kwvalues[i];
27295 : }
27296 : }
27297 : return NULL;
27298 : }
27299 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030d0000
27300 : CYTHON_UNUSED static PyObject *__Pyx_KwargsAsDict_FASTCALL(PyObject *kwnames, PyObject *const *kwvalues) {
27301 : Py_ssize_t i, nkwargs = PyTuple_GET_SIZE(kwnames);
27302 : PyObject *dict;
27303 : dict = PyDict_New();
27304 : if (unlikely(!dict))
27305 : return NULL;
27306 : for (i=0; i<nkwargs; i++) {
27307 : PyObject *key = PyTuple_GET_ITEM(kwnames, i);
27308 : if (unlikely(PyDict_SetItem(dict, key, kwvalues[i]) < 0))
27309 : goto bad;
27310 : }
27311 : return dict;
27312 : bad:
27313 : Py_DECREF(dict);
27314 : return NULL;
27315 : }
27316 : #endif
27317 : #endif
27318 :
27319 : /* RaiseArgTupleInvalid */
27320 0 : static void __Pyx_RaiseArgtupleInvalid(
27321 : const char* func_name,
27322 : int exact,
27323 : Py_ssize_t num_min,
27324 : Py_ssize_t num_max,
27325 : Py_ssize_t num_found)
27326 : {
27327 0 : Py_ssize_t num_expected;
27328 0 : const char *more_or_less;
27329 0 : if (num_found < num_min) {
27330 : num_expected = num_min;
27331 : more_or_less = "at least";
27332 : } else {
27333 0 : num_expected = num_max;
27334 0 : more_or_less = "at most";
27335 : }
27336 0 : if (exact) {
27337 0 : more_or_less = "exactly";
27338 : }
27339 0 : PyErr_Format(PyExc_TypeError,
27340 : "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)",
27341 : func_name, more_or_less, num_expected,
27342 : (num_expected == 1) ? "" : "s", num_found);
27343 0 : }
27344 :
27345 : /* RaiseDoubleKeywords */
27346 0 : static void __Pyx_RaiseDoubleKeywordsError(
27347 : const char* func_name,
27348 : PyObject* kw_name)
27349 : {
27350 0 : PyErr_Format(PyExc_TypeError,
27351 : #if PY_MAJOR_VERSION >= 3
27352 : "%s() got multiple values for keyword argument '%U'", func_name, kw_name);
27353 : #else
27354 : "%s() got multiple values for keyword argument '%s'", func_name,
27355 : PyString_AsString(kw_name));
27356 : #endif
27357 : }
27358 :
27359 : /* ParseKeywords */
27360 0 : static int __Pyx_ParseOptionalKeywords(
27361 : PyObject *kwds,
27362 : PyObject *const *kwvalues,
27363 : PyObject **argnames[],
27364 : PyObject *kwds2,
27365 : PyObject *values[],
27366 : Py_ssize_t num_pos_args,
27367 : const char* function_name)
27368 : {
27369 0 : PyObject *key = 0, *value = 0;
27370 0 : Py_ssize_t pos = 0;
27371 0 : PyObject*** name;
27372 0 : PyObject*** first_kw_arg = argnames + num_pos_args;
27373 0 : int kwds_is_tuple = CYTHON_METH_FASTCALL && likely(PyTuple_Check(kwds));
27374 0 : while (1) {
27375 0 : Py_XDECREF(key); key = NULL;
27376 0 : Py_XDECREF(value); value = NULL;
27377 0 : if (kwds_is_tuple) {
27378 0 : Py_ssize_t size;
27379 : #if CYTHON_ASSUME_SAFE_MACROS
27380 0 : size = PyTuple_GET_SIZE(kwds);
27381 : #else
27382 : size = PyTuple_Size(kwds);
27383 : if (size < 0) goto bad;
27384 : #endif
27385 0 : if (pos >= size) break;
27386 : #if CYTHON_AVOID_BORROWED_REFS
27387 : key = __Pyx_PySequence_ITEM(kwds, pos);
27388 : if (!key) goto bad;
27389 : #elif CYTHON_ASSUME_SAFE_MACROS
27390 0 : key = PyTuple_GET_ITEM(kwds, pos);
27391 : #else
27392 : key = PyTuple_GetItem(kwds, pos);
27393 : if (!key) goto bad;
27394 : #endif
27395 0 : value = kwvalues[pos];
27396 0 : pos++;
27397 : }
27398 : else
27399 : {
27400 0 : if (!PyDict_Next(kwds, &pos, &key, &value)) break;
27401 : #if CYTHON_AVOID_BORROWED_REFS
27402 : Py_INCREF(key);
27403 : #endif
27404 : }
27405 0 : name = first_kw_arg;
27406 0 : while (*name && (**name != key)) name++;
27407 0 : if (*name) {
27408 0 : values[name-argnames] = value;
27409 : #if CYTHON_AVOID_BORROWED_REFS
27410 : Py_INCREF(value);
27411 : Py_DECREF(key);
27412 : #endif
27413 0 : key = NULL;
27414 0 : value = NULL;
27415 0 : continue;
27416 : }
27417 : #if !CYTHON_AVOID_BORROWED_REFS
27418 0 : Py_INCREF(key);
27419 : #endif
27420 0 : Py_INCREF(value);
27421 0 : name = first_kw_arg;
27422 : #if PY_MAJOR_VERSION < 3
27423 : if (likely(PyString_Check(key))) {
27424 : while (*name) {
27425 : if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
27426 : && _PyString_Eq(**name, key)) {
27427 : values[name-argnames] = value;
27428 : #if CYTHON_AVOID_BORROWED_REFS
27429 : value = NULL;
27430 : #endif
27431 : break;
27432 : }
27433 : name++;
27434 : }
27435 : if (*name) continue;
27436 : else {
27437 : PyObject*** argname = argnames;
27438 : while (argname != first_kw_arg) {
27439 : if ((**argname == key) || (
27440 : (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
27441 : && _PyString_Eq(**argname, key))) {
27442 : goto arg_passed_twice;
27443 : }
27444 : argname++;
27445 : }
27446 : }
27447 : } else
27448 : #endif
27449 0 : if (likely(PyUnicode_Check(key))) {
27450 0 : while (*name) {
27451 0 : int cmp = (
27452 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
27453 0 : (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
27454 : #endif
27455 0 : PyUnicode_Compare(**name, key)
27456 : );
27457 0 : if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
27458 0 : if (cmp == 0) {
27459 0 : values[name-argnames] = value;
27460 : #if CYTHON_AVOID_BORROWED_REFS
27461 : value = NULL;
27462 : #endif
27463 0 : break;
27464 : }
27465 0 : name++;
27466 : }
27467 0 : if (*name) continue;
27468 : else {
27469 : PyObject*** argname = argnames;
27470 0 : while (argname != first_kw_arg) {
27471 0 : int cmp = (**argname == key) ? 0 :
27472 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
27473 0 : (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
27474 : #endif
27475 0 : PyUnicode_Compare(**argname, key);
27476 0 : if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
27477 0 : if (cmp == 0) goto arg_passed_twice;
27478 0 : argname++;
27479 : }
27480 : }
27481 : } else
27482 0 : goto invalid_keyword_type;
27483 0 : if (kwds2) {
27484 0 : if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
27485 : } else {
27486 0 : goto invalid_keyword;
27487 : }
27488 : }
27489 0 : Py_XDECREF(key);
27490 0 : Py_XDECREF(value);
27491 0 : return 0;
27492 0 : arg_passed_twice:
27493 0 : __Pyx_RaiseDoubleKeywordsError(function_name, key);
27494 0 : goto bad;
27495 0 : invalid_keyword_type:
27496 0 : PyErr_Format(PyExc_TypeError,
27497 : "%.200s() keywords must be strings", function_name);
27498 0 : goto bad;
27499 0 : invalid_keyword:
27500 : #if PY_MAJOR_VERSION < 3
27501 : PyErr_Format(PyExc_TypeError,
27502 : "%.200s() got an unexpected keyword argument '%.200s'",
27503 : function_name, PyString_AsString(key));
27504 : #else
27505 0 : PyErr_Format(PyExc_TypeError,
27506 : "%s() got an unexpected keyword argument '%U'",
27507 : function_name, key);
27508 : #endif
27509 0 : bad:
27510 0 : Py_XDECREF(key);
27511 0 : Py_XDECREF(value);
27512 0 : return -1;
27513 : }
27514 :
27515 : /* ArgTypeTest */
27516 0 : static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact)
27517 : {
27518 0 : __Pyx_TypeName type_name;
27519 0 : __Pyx_TypeName obj_type_name;
27520 0 : if (unlikely(!type)) {
27521 0 : PyErr_SetString(PyExc_SystemError, "Missing type object");
27522 0 : return 0;
27523 : }
27524 0 : else if (exact) {
27525 : #if PY_MAJOR_VERSION == 2
27526 : if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1;
27527 : #endif
27528 : }
27529 : else {
27530 0 : if (likely(__Pyx_TypeCheck(obj, type))) return 1;
27531 : }
27532 0 : type_name = __Pyx_PyType_GetName(type);
27533 0 : obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
27534 0 : PyErr_Format(PyExc_TypeError,
27535 : "Argument '%.200s' has incorrect type (expected " __Pyx_FMT_TYPENAME
27536 : ", got " __Pyx_FMT_TYPENAME ")", name, type_name, obj_type_name);
27537 0 : __Pyx_DECREF_TypeName(type_name);
27538 0 : __Pyx_DECREF_TypeName(obj_type_name);
27539 0 : return 0;
27540 : }
27541 :
27542 : /* RaiseException */
27543 : #if PY_MAJOR_VERSION < 3
27544 : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
27545 : __Pyx_PyThreadState_declare
27546 : CYTHON_UNUSED_VAR(cause);
27547 : Py_XINCREF(type);
27548 : if (!value || value == Py_None)
27549 : value = NULL;
27550 : else
27551 : Py_INCREF(value);
27552 : if (!tb || tb == Py_None)
27553 : tb = NULL;
27554 : else {
27555 : Py_INCREF(tb);
27556 : if (!PyTraceBack_Check(tb)) {
27557 : PyErr_SetString(PyExc_TypeError,
27558 : "raise: arg 3 must be a traceback or None");
27559 : goto raise_error;
27560 : }
27561 : }
27562 : if (PyType_Check(type)) {
27563 : #if CYTHON_COMPILING_IN_PYPY
27564 : if (!value) {
27565 : Py_INCREF(Py_None);
27566 : value = Py_None;
27567 : }
27568 : #endif
27569 : PyErr_NormalizeException(&type, &value, &tb);
27570 : } else {
27571 : if (value) {
27572 : PyErr_SetString(PyExc_TypeError,
27573 : "instance exception may not have a separate value");
27574 : goto raise_error;
27575 : }
27576 : value = type;
27577 : type = (PyObject*) Py_TYPE(type);
27578 : Py_INCREF(type);
27579 : if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
27580 : PyErr_SetString(PyExc_TypeError,
27581 : "raise: exception class must be a subclass of BaseException");
27582 : goto raise_error;
27583 : }
27584 : }
27585 : __Pyx_PyThreadState_assign
27586 : __Pyx_ErrRestore(type, value, tb);
27587 : return;
27588 : raise_error:
27589 : Py_XDECREF(value);
27590 : Py_XDECREF(type);
27591 : Py_XDECREF(tb);
27592 : return;
27593 : }
27594 : #else
27595 0 : static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
27596 0 : PyObject* owned_instance = NULL;
27597 0 : if (tb == Py_None) {
27598 : tb = 0;
27599 0 : } else if (tb && !PyTraceBack_Check(tb)) {
27600 0 : PyErr_SetString(PyExc_TypeError,
27601 : "raise: arg 3 must be a traceback or None");
27602 0 : goto bad;
27603 : }
27604 0 : if (value == Py_None)
27605 0 : value = 0;
27606 0 : if (PyExceptionInstance_Check(type)) {
27607 0 : if (value) {
27608 0 : PyErr_SetString(PyExc_TypeError,
27609 : "instance exception may not have a separate value");
27610 0 : goto bad;
27611 : }
27612 : value = type;
27613 : type = (PyObject*) Py_TYPE(value);
27614 0 : } else if (PyExceptionClass_Check(type)) {
27615 0 : PyObject *instance_class = NULL;
27616 0 : if (value && PyExceptionInstance_Check(value)) {
27617 0 : instance_class = (PyObject*) Py_TYPE(value);
27618 0 : if (instance_class != type) {
27619 0 : int is_subclass = PyObject_IsSubclass(instance_class, type);
27620 0 : if (!is_subclass) {
27621 : instance_class = NULL;
27622 0 : } else if (unlikely(is_subclass == -1)) {
27623 0 : goto bad;
27624 : } else {
27625 : type = instance_class;
27626 : }
27627 : }
27628 : }
27629 : if (!instance_class) {
27630 0 : PyObject *args;
27631 0 : if (!value)
27632 0 : args = PyTuple_New(0);
27633 0 : else if (PyTuple_Check(value)) {
27634 0 : Py_INCREF(value);
27635 0 : args = value;
27636 : } else
27637 0 : args = PyTuple_Pack(1, value);
27638 0 : if (!args)
27639 0 : goto bad;
27640 0 : owned_instance = PyObject_Call(type, args, NULL);
27641 0 : Py_DECREF(args);
27642 0 : if (!owned_instance)
27643 0 : goto bad;
27644 0 : value = owned_instance;
27645 0 : if (!PyExceptionInstance_Check(value)) {
27646 0 : PyErr_Format(PyExc_TypeError,
27647 : "calling %R should have returned an instance of "
27648 : "BaseException, not %R",
27649 : type, Py_TYPE(value));
27650 0 : goto bad;
27651 : }
27652 : }
27653 : } else {
27654 0 : PyErr_SetString(PyExc_TypeError,
27655 : "raise: exception class must be a subclass of BaseException");
27656 0 : goto bad;
27657 : }
27658 0 : if (cause) {
27659 0 : PyObject *fixed_cause;
27660 0 : if (cause == Py_None) {
27661 : fixed_cause = NULL;
27662 0 : } else if (PyExceptionClass_Check(cause)) {
27663 0 : fixed_cause = PyObject_CallObject(cause, NULL);
27664 0 : if (fixed_cause == NULL)
27665 0 : goto bad;
27666 0 : } else if (PyExceptionInstance_Check(cause)) {
27667 0 : fixed_cause = cause;
27668 0 : Py_INCREF(fixed_cause);
27669 : } else {
27670 0 : PyErr_SetString(PyExc_TypeError,
27671 : "exception causes must derive from "
27672 : "BaseException");
27673 0 : goto bad;
27674 : }
27675 0 : PyException_SetCause(value, fixed_cause);
27676 : }
27677 0 : PyErr_SetObject(type, value);
27678 0 : if (tb) {
27679 : #if PY_VERSION_HEX >= 0x030C00A6
27680 0 : PyException_SetTraceback(value, tb);
27681 : #elif CYTHON_FAST_THREAD_STATE
27682 : PyThreadState *tstate = __Pyx_PyThreadState_Current;
27683 : PyObject* tmp_tb = tstate->curexc_traceback;
27684 : if (tb != tmp_tb) {
27685 : Py_INCREF(tb);
27686 : tstate->curexc_traceback = tb;
27687 : Py_XDECREF(tmp_tb);
27688 : }
27689 : #else
27690 : PyObject *tmp_type, *tmp_value, *tmp_tb;
27691 : PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
27692 : Py_INCREF(tb);
27693 : PyErr_Restore(tmp_type, tmp_value, tb);
27694 : Py_XDECREF(tmp_tb);
27695 : #endif
27696 : }
27697 0 : bad:
27698 0 : Py_XDECREF(owned_instance);
27699 0 : return;
27700 : }
27701 : #endif
27702 :
27703 : /* PyFunctionFastCall */
27704 : #if CYTHON_FAST_PYCALL && !CYTHON_VECTORCALL
27705 : static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na,
27706 : PyObject *globals) {
27707 : PyFrameObject *f;
27708 : PyThreadState *tstate = __Pyx_PyThreadState_Current;
27709 : PyObject **fastlocals;
27710 : Py_ssize_t i;
27711 : PyObject *result;
27712 : assert(globals != NULL);
27713 : /* XXX Perhaps we should create a specialized
27714 : PyFrame_New() that doesn't take locals, but does
27715 : take builtins without sanity checking them.
27716 : */
27717 : assert(tstate != NULL);
27718 : f = PyFrame_New(tstate, co, globals, NULL);
27719 : if (f == NULL) {
27720 : return NULL;
27721 : }
27722 : fastlocals = __Pyx_PyFrame_GetLocalsplus(f);
27723 : for (i = 0; i < na; i++) {
27724 : Py_INCREF(*args);
27725 : fastlocals[i] = *args++;
27726 : }
27727 : result = PyEval_EvalFrameEx(f,0);
27728 : ++tstate->recursion_depth;
27729 : Py_DECREF(f);
27730 : --tstate->recursion_depth;
27731 : return result;
27732 : }
27733 : static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) {
27734 : PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func);
27735 : PyObject *globals = PyFunction_GET_GLOBALS(func);
27736 : PyObject *argdefs = PyFunction_GET_DEFAULTS(func);
27737 : PyObject *closure;
27738 : #if PY_MAJOR_VERSION >= 3
27739 : PyObject *kwdefs;
27740 : #endif
27741 : PyObject *kwtuple, **k;
27742 : PyObject **d;
27743 : Py_ssize_t nd;
27744 : Py_ssize_t nk;
27745 : PyObject *result;
27746 : assert(kwargs == NULL || PyDict_Check(kwargs));
27747 : nk = kwargs ? PyDict_Size(kwargs) : 0;
27748 : #if PY_MAJOR_VERSION < 3
27749 : if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) {
27750 : return NULL;
27751 : }
27752 : #else
27753 : if (unlikely(Py_EnterRecursiveCall(" while calling a Python object"))) {
27754 : return NULL;
27755 : }
27756 : #endif
27757 : if (
27758 : #if PY_MAJOR_VERSION >= 3
27759 : co->co_kwonlyargcount == 0 &&
27760 : #endif
27761 : likely(kwargs == NULL || nk == 0) &&
27762 : co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) {
27763 : if (argdefs == NULL && co->co_argcount == nargs) {
27764 : result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals);
27765 : goto done;
27766 : }
27767 : else if (nargs == 0 && argdefs != NULL
27768 : && co->co_argcount == Py_SIZE(argdefs)) {
27769 : /* function called with no arguments, but all parameters have
27770 : a default value: use default values as arguments .*/
27771 : args = &PyTuple_GET_ITEM(argdefs, 0);
27772 : result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals);
27773 : goto done;
27774 : }
27775 : }
27776 : if (kwargs != NULL) {
27777 : Py_ssize_t pos, i;
27778 : kwtuple = PyTuple_New(2 * nk);
27779 : if (kwtuple == NULL) {
27780 : result = NULL;
27781 : goto done;
27782 : }
27783 : k = &PyTuple_GET_ITEM(kwtuple, 0);
27784 : pos = i = 0;
27785 : while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) {
27786 : Py_INCREF(k[i]);
27787 : Py_INCREF(k[i+1]);
27788 : i += 2;
27789 : }
27790 : nk = i / 2;
27791 : }
27792 : else {
27793 : kwtuple = NULL;
27794 : k = NULL;
27795 : }
27796 : closure = PyFunction_GET_CLOSURE(func);
27797 : #if PY_MAJOR_VERSION >= 3
27798 : kwdefs = PyFunction_GET_KW_DEFAULTS(func);
27799 : #endif
27800 : if (argdefs != NULL) {
27801 : d = &PyTuple_GET_ITEM(argdefs, 0);
27802 : nd = Py_SIZE(argdefs);
27803 : }
27804 : else {
27805 : d = NULL;
27806 : nd = 0;
27807 : }
27808 : #if PY_MAJOR_VERSION >= 3
27809 : result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL,
27810 : args, (int)nargs,
27811 : k, (int)nk,
27812 : d, (int)nd, kwdefs, closure);
27813 : #else
27814 : result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL,
27815 : args, (int)nargs,
27816 : k, (int)nk,
27817 : d, (int)nd, closure);
27818 : #endif
27819 : Py_XDECREF(kwtuple);
27820 : done:
27821 : Py_LeaveRecursiveCall();
27822 : return result;
27823 : }
27824 : #endif
27825 :
27826 : /* PyObjectCall */
27827 : #if CYTHON_COMPILING_IN_CPYTHON
27828 412 : static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) {
27829 412 : PyObject *result;
27830 412 : ternaryfunc call = Py_TYPE(func)->tp_call;
27831 412 : if (unlikely(!call))
27832 0 : return PyObject_Call(func, arg, kw);
27833 : #if PY_MAJOR_VERSION < 3
27834 : if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
27835 : return NULL;
27836 : #else
27837 412 : if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
27838 : return NULL;
27839 : #endif
27840 412 : result = (*call)(func, arg, kw);
27841 412 : Py_LeaveRecursiveCall();
27842 412 : if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
27843 0 : PyErr_SetString(
27844 : PyExc_SystemError,
27845 : "NULL result without error in PyObject_Call");
27846 : }
27847 : return result;
27848 : }
27849 : #endif
27850 :
27851 : /* PyObjectCallMethO */
27852 : #if CYTHON_COMPILING_IN_CPYTHON
27853 0 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) {
27854 0 : PyObject *self, *result;
27855 0 : PyCFunction cfunc;
27856 0 : cfunc = __Pyx_CyOrPyCFunction_GET_FUNCTION(func);
27857 0 : self = __Pyx_CyOrPyCFunction_GET_SELF(func);
27858 : #if PY_MAJOR_VERSION < 3
27859 : if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object")))
27860 : return NULL;
27861 : #else
27862 0 : if (unlikely(Py_EnterRecursiveCall(" while calling a Python object")))
27863 : return NULL;
27864 : #endif
27865 0 : result = cfunc(self, arg);
27866 0 : Py_LeaveRecursiveCall();
27867 0 : if (unlikely(!result) && unlikely(!PyErr_Occurred())) {
27868 0 : PyErr_SetString(
27869 : PyExc_SystemError,
27870 : "NULL result without error in PyObject_Call");
27871 : }
27872 : return result;
27873 : }
27874 : #endif
27875 :
27876 : /* PyObjectFastCall */
27877 : #if PY_VERSION_HEX < 0x03090000 || CYTHON_COMPILING_IN_LIMITED_API
27878 : static PyObject* __Pyx_PyObject_FastCall_fallback(PyObject *func, PyObject **args, size_t nargs, PyObject *kwargs) {
27879 : PyObject *argstuple;
27880 : PyObject *result = 0;
27881 : size_t i;
27882 : argstuple = PyTuple_New((Py_ssize_t)nargs);
27883 : if (unlikely(!argstuple)) return NULL;
27884 : for (i = 0; i < nargs; i++) {
27885 : Py_INCREF(args[i]);
27886 : if (__Pyx_PyTuple_SET_ITEM(argstuple, (Py_ssize_t)i, args[i]) < 0) goto bad;
27887 : }
27888 : result = __Pyx_PyObject_Call(func, argstuple, kwargs);
27889 : bad:
27890 : Py_DECREF(argstuple);
27891 : return result;
27892 : }
27893 : #endif
27894 17 : static CYTHON_INLINE PyObject* __Pyx_PyObject_FastCallDict(PyObject *func, PyObject **args, size_t _nargs, PyObject *kwargs) {
27895 17 : Py_ssize_t nargs = __Pyx_PyVectorcall_NARGS(_nargs);
27896 : #if CYTHON_COMPILING_IN_CPYTHON
27897 17 : if (nargs == 0 && kwargs == NULL) {
27898 0 : if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_NOARGS))
27899 0 : return __Pyx_PyObject_CallMethO(func, NULL);
27900 : }
27901 17 : else if (nargs == 1 && kwargs == NULL) {
27902 16 : if (__Pyx_CyOrPyCFunction_Check(func) && likely( __Pyx_CyOrPyCFunction_GET_FLAGS(func) & METH_O))
27903 0 : return __Pyx_PyObject_CallMethO(func, args[0]);
27904 : }
27905 : #endif
27906 : #if PY_VERSION_HEX < 0x030800B1
27907 : #if CYTHON_FAST_PYCCALL
27908 : if (PyCFunction_Check(func)) {
27909 : if (kwargs) {
27910 : return _PyCFunction_FastCallDict(func, args, nargs, kwargs);
27911 : } else {
27912 : return _PyCFunction_FastCallKeywords(func, args, nargs, NULL);
27913 : }
27914 : }
27915 : #if PY_VERSION_HEX >= 0x030700A1
27916 : if (!kwargs && __Pyx_IS_TYPE(func, &PyMethodDescr_Type)) {
27917 : return _PyMethodDescr_FastCallKeywords(func, args, nargs, NULL);
27918 : }
27919 : #endif
27920 : #endif
27921 : #if CYTHON_FAST_PYCALL
27922 : if (PyFunction_Check(func)) {
27923 : return __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs);
27924 : }
27925 : #endif
27926 : #endif
27927 17 : if (kwargs == NULL) {
27928 : #if CYTHON_VECTORCALL
27929 : #if PY_VERSION_HEX < 0x03090000
27930 : vectorcallfunc f = _PyVectorcall_Function(func);
27931 : #else
27932 17 : vectorcallfunc f = PyVectorcall_Function(func);
27933 : #endif
27934 17 : if (f) {
27935 17 : return f(func, args, (size_t)nargs, NULL);
27936 : }
27937 : #elif defined(__Pyx_CyFunction_USED) && CYTHON_BACKPORT_VECTORCALL
27938 : if (__Pyx_CyFunction_CheckExact(func)) {
27939 : __pyx_vectorcallfunc f = __Pyx_CyFunction_func_vectorcall(func);
27940 : if (f) return f(func, args, (size_t)nargs, NULL);
27941 : }
27942 : #endif
27943 : }
27944 0 : if (nargs == 0) {
27945 0 : return __Pyx_PyObject_Call(func, __pyx_empty_tuple, kwargs);
27946 : }
27947 : #if PY_VERSION_HEX >= 0x03090000 && !CYTHON_COMPILING_IN_LIMITED_API
27948 0 : return PyObject_VectorcallDict(func, args, (size_t)nargs, kwargs);
27949 : #else
27950 : return __Pyx_PyObject_FastCall_fallback(func, args, (size_t)nargs, kwargs);
27951 : #endif
27952 : }
27953 :
27954 : /* RaiseUnexpectedTypeError */
27955 : static int
27956 0 : __Pyx_RaiseUnexpectedTypeError(const char *expected, PyObject *obj)
27957 : {
27958 0 : __Pyx_TypeName obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
27959 0 : PyErr_Format(PyExc_TypeError, "Expected %s, got " __Pyx_FMT_TYPENAME,
27960 : expected, obj_type_name);
27961 0 : __Pyx_DECREF_TypeName(obj_type_name);
27962 0 : return 0;
27963 : }
27964 :
27965 : /* CIntToDigits */
27966 : static const char DIGIT_PAIRS_10[2*10*10+1] = {
27967 : "00010203040506070809"
27968 : "10111213141516171819"
27969 : "20212223242526272829"
27970 : "30313233343536373839"
27971 : "40414243444546474849"
27972 : "50515253545556575859"
27973 : "60616263646566676869"
27974 : "70717273747576777879"
27975 : "80818283848586878889"
27976 : "90919293949596979899"
27977 : };
27978 : static const char DIGIT_PAIRS_8[2*8*8+1] = {
27979 : "0001020304050607"
27980 : "1011121314151617"
27981 : "2021222324252627"
27982 : "3031323334353637"
27983 : "4041424344454647"
27984 : "5051525354555657"
27985 : "6061626364656667"
27986 : "7071727374757677"
27987 : };
27988 : static const char DIGITS_HEX[2*16+1] = {
27989 : "0123456789abcdef"
27990 : "0123456789ABCDEF"
27991 : };
27992 :
27993 : /* BuildPyUnicode */
27994 0 : static PyObject* __Pyx_PyUnicode_BuildFromAscii(Py_ssize_t ulength, char* chars, int clength,
27995 : int prepend_sign, char padding_char) {
27996 0 : PyObject *uval;
27997 0 : Py_ssize_t uoffset = ulength - clength;
27998 : #if CYTHON_USE_UNICODE_INTERNALS
27999 0 : Py_ssize_t i;
28000 : #if CYTHON_PEP393_ENABLED
28001 0 : void *udata;
28002 0 : uval = PyUnicode_New(ulength, 127);
28003 0 : if (unlikely(!uval)) return NULL;
28004 0 : udata = PyUnicode_DATA(uval);
28005 : #else
28006 : Py_UNICODE *udata;
28007 : uval = PyUnicode_FromUnicode(NULL, ulength);
28008 : if (unlikely(!uval)) return NULL;
28009 : udata = PyUnicode_AS_UNICODE(uval);
28010 : #endif
28011 0 : if (uoffset > 0) {
28012 0 : i = 0;
28013 0 : if (prepend_sign) {
28014 0 : __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, 0, '-');
28015 0 : i++;
28016 : }
28017 0 : for (; i < uoffset; i++) {
28018 0 : __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, i, padding_char);
28019 : }
28020 : }
28021 0 : for (i=0; i < clength; i++) {
28022 0 : __Pyx_PyUnicode_WRITE(PyUnicode_1BYTE_KIND, udata, uoffset+i, chars[i]);
28023 : }
28024 : #else
28025 : {
28026 : PyObject *sign = NULL, *padding = NULL;
28027 : uval = NULL;
28028 : if (uoffset > 0) {
28029 : prepend_sign = !!prepend_sign;
28030 : if (uoffset > prepend_sign) {
28031 : padding = PyUnicode_FromOrdinal(padding_char);
28032 : if (likely(padding) && uoffset > prepend_sign + 1) {
28033 : PyObject *tmp;
28034 : PyObject *repeat = PyInt_FromSsize_t(uoffset - prepend_sign);
28035 : if (unlikely(!repeat)) goto done_or_error;
28036 : tmp = PyNumber_Multiply(padding, repeat);
28037 : Py_DECREF(repeat);
28038 : Py_DECREF(padding);
28039 : padding = tmp;
28040 : }
28041 : if (unlikely(!padding)) goto done_or_error;
28042 : }
28043 : if (prepend_sign) {
28044 : sign = PyUnicode_FromOrdinal('-');
28045 : if (unlikely(!sign)) goto done_or_error;
28046 : }
28047 : }
28048 : uval = PyUnicode_DecodeASCII(chars, clength, NULL);
28049 : if (likely(uval) && padding) {
28050 : PyObject *tmp = PyNumber_Add(padding, uval);
28051 : Py_DECREF(uval);
28052 : uval = tmp;
28053 : }
28054 : if (likely(uval) && sign) {
28055 : PyObject *tmp = PyNumber_Add(sign, uval);
28056 : Py_DECREF(uval);
28057 : uval = tmp;
28058 : }
28059 : done_or_error:
28060 : Py_XDECREF(padding);
28061 : Py_XDECREF(sign);
28062 : }
28063 : #endif
28064 : return uval;
28065 : }
28066 :
28067 : /* CIntToPyUnicode */
28068 0 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_int(int value, Py_ssize_t width, char padding_char, char format_char) {
28069 0 : char digits[sizeof(int)*3+2];
28070 0 : char *dpos, *end = digits + sizeof(int)*3+2;
28071 0 : const char *hex_digits = DIGITS_HEX;
28072 0 : Py_ssize_t length, ulength;
28073 0 : int prepend_sign, last_one_off;
28074 0 : int remaining;
28075 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
28076 : #pragma GCC diagnostic push
28077 : #pragma GCC diagnostic ignored "-Wconversion"
28078 : #endif
28079 0 : const int neg_one = (int) -1, const_zero = (int) 0;
28080 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
28081 : #pragma GCC diagnostic pop
28082 : #endif
28083 0 : const int is_unsigned = neg_one > const_zero;
28084 0 : if (format_char == 'X') {
28085 0 : hex_digits += 16;
28086 0 : format_char = 'x';
28087 : }
28088 0 : remaining = value;
28089 0 : last_one_off = 0;
28090 0 : dpos = end;
28091 0 : do {
28092 0 : int digit_pos;
28093 0 : switch (format_char) {
28094 0 : case 'o':
28095 0 : digit_pos = abs((int)(remaining % (8*8)));
28096 0 : remaining = (int) (remaining / (8*8));
28097 0 : dpos -= 2;
28098 0 : memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
28099 0 : last_one_off = (digit_pos < 8);
28100 0 : break;
28101 0 : case 'd':
28102 0 : digit_pos = abs((int)(remaining % (10*10)));
28103 0 : remaining = (int) (remaining / (10*10));
28104 0 : dpos -= 2;
28105 0 : memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
28106 0 : last_one_off = (digit_pos < 10);
28107 0 : break;
28108 0 : case 'x':
28109 0 : *(--dpos) = hex_digits[abs((int)(remaining % 16))];
28110 0 : remaining = (int) (remaining / 16);
28111 0 : break;
28112 : default:
28113 : assert(0);
28114 : break;
28115 : }
28116 0 : } while (unlikely(remaining != 0));
28117 0 : assert(!last_one_off || *dpos == '0');
28118 0 : dpos += last_one_off;
28119 0 : length = end - dpos;
28120 0 : ulength = length;
28121 0 : prepend_sign = 0;
28122 0 : if (!is_unsigned && value <= neg_one) {
28123 0 : if (padding_char == ' ' || width <= length + 1) {
28124 0 : *(--dpos) = '-';
28125 0 : ++length;
28126 : } else {
28127 : prepend_sign = 1;
28128 : }
28129 0 : ++ulength;
28130 : }
28131 0 : if (width > ulength) {
28132 : ulength = width;
28133 : }
28134 0 : if (ulength == 1) {
28135 0 : return PyUnicode_FromOrdinal(*dpos);
28136 : }
28137 0 : return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
28138 : }
28139 :
28140 : /* CIntToPyUnicode */
28141 0 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_From_Py_ssize_t(Py_ssize_t value, Py_ssize_t width, char padding_char, char format_char) {
28142 0 : char digits[sizeof(Py_ssize_t)*3+2];
28143 0 : char *dpos, *end = digits + sizeof(Py_ssize_t)*3+2;
28144 0 : const char *hex_digits = DIGITS_HEX;
28145 0 : Py_ssize_t length, ulength;
28146 0 : int prepend_sign, last_one_off;
28147 0 : Py_ssize_t remaining;
28148 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
28149 : #pragma GCC diagnostic push
28150 : #pragma GCC diagnostic ignored "-Wconversion"
28151 : #endif
28152 0 : const Py_ssize_t neg_one = (Py_ssize_t) -1, const_zero = (Py_ssize_t) 0;
28153 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
28154 : #pragma GCC diagnostic pop
28155 : #endif
28156 0 : const int is_unsigned = neg_one > const_zero;
28157 0 : if (format_char == 'X') {
28158 0 : hex_digits += 16;
28159 0 : format_char = 'x';
28160 : }
28161 0 : remaining = value;
28162 0 : last_one_off = 0;
28163 0 : dpos = end;
28164 0 : do {
28165 0 : int digit_pos;
28166 0 : switch (format_char) {
28167 0 : case 'o':
28168 0 : digit_pos = abs((int)(remaining % (8*8)));
28169 0 : remaining = (Py_ssize_t) (remaining / (8*8));
28170 0 : dpos -= 2;
28171 0 : memcpy(dpos, DIGIT_PAIRS_8 + digit_pos * 2, 2);
28172 0 : last_one_off = (digit_pos < 8);
28173 0 : break;
28174 0 : case 'd':
28175 0 : digit_pos = abs((int)(remaining % (10*10)));
28176 0 : remaining = (Py_ssize_t) (remaining / (10*10));
28177 0 : dpos -= 2;
28178 0 : memcpy(dpos, DIGIT_PAIRS_10 + digit_pos * 2, 2);
28179 0 : last_one_off = (digit_pos < 10);
28180 0 : break;
28181 0 : case 'x':
28182 0 : *(--dpos) = hex_digits[abs((int)(remaining % 16))];
28183 0 : remaining = (Py_ssize_t) (remaining / 16);
28184 0 : break;
28185 : default:
28186 : assert(0);
28187 : break;
28188 : }
28189 0 : } while (unlikely(remaining != 0));
28190 0 : assert(!last_one_off || *dpos == '0');
28191 0 : dpos += last_one_off;
28192 0 : length = end - dpos;
28193 0 : ulength = length;
28194 0 : prepend_sign = 0;
28195 0 : if (!is_unsigned && value <= neg_one) {
28196 0 : if (padding_char == ' ' || width <= length + 1) {
28197 0 : *(--dpos) = '-';
28198 0 : ++length;
28199 : } else {
28200 : prepend_sign = 1;
28201 : }
28202 0 : ++ulength;
28203 : }
28204 0 : if (width > ulength) {
28205 : ulength = width;
28206 : }
28207 0 : if (ulength == 1) {
28208 0 : return PyUnicode_FromOrdinal(*dpos);
28209 : }
28210 0 : return __Pyx_PyUnicode_BuildFromAscii(ulength, dpos, (int) length, prepend_sign, padding_char);
28211 : }
28212 :
28213 : /* JoinPyUnicode */
28214 0 : static PyObject* __Pyx_PyUnicode_Join(PyObject* value_tuple, Py_ssize_t value_count, Py_ssize_t result_ulength,
28215 : Py_UCS4 max_char) {
28216 : #if CYTHON_USE_UNICODE_INTERNALS && CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28217 0 : PyObject *result_uval;
28218 0 : int result_ukind, kind_shift;
28219 0 : Py_ssize_t i, char_pos;
28220 0 : void *result_udata;
28221 0 : CYTHON_MAYBE_UNUSED_VAR(max_char);
28222 : #if CYTHON_PEP393_ENABLED
28223 0 : result_uval = PyUnicode_New(result_ulength, max_char);
28224 0 : if (unlikely(!result_uval)) return NULL;
28225 0 : result_ukind = (max_char <= 255) ? PyUnicode_1BYTE_KIND : (max_char <= 65535) ? PyUnicode_2BYTE_KIND : PyUnicode_4BYTE_KIND;
28226 0 : kind_shift = (result_ukind == PyUnicode_4BYTE_KIND) ? 2 : result_ukind - 1;
28227 0 : result_udata = PyUnicode_DATA(result_uval);
28228 : #else
28229 : result_uval = PyUnicode_FromUnicode(NULL, result_ulength);
28230 : if (unlikely(!result_uval)) return NULL;
28231 : result_ukind = sizeof(Py_UNICODE);
28232 : kind_shift = (result_ukind == 4) ? 2 : result_ukind - 1;
28233 : result_udata = PyUnicode_AS_UNICODE(result_uval);
28234 : #endif
28235 0 : assert(kind_shift == 2 || kind_shift == 1 || kind_shift == 0);
28236 0 : char_pos = 0;
28237 0 : for (i=0; i < value_count; i++) {
28238 0 : int ukind;
28239 0 : Py_ssize_t ulength;
28240 0 : void *udata;
28241 0 : PyObject *uval = PyTuple_GET_ITEM(value_tuple, i);
28242 0 : if (unlikely(__Pyx_PyUnicode_READY(uval)))
28243 : goto bad;
28244 0 : ulength = __Pyx_PyUnicode_GET_LENGTH(uval);
28245 0 : if (unlikely(!ulength))
28246 0 : continue;
28247 0 : if (unlikely((PY_SSIZE_T_MAX >> kind_shift) - ulength < char_pos))
28248 0 : goto overflow;
28249 0 : ukind = __Pyx_PyUnicode_KIND(uval);
28250 0 : udata = __Pyx_PyUnicode_DATA(uval);
28251 0 : if (!CYTHON_PEP393_ENABLED || ukind == result_ukind) {
28252 0 : memcpy((char *)result_udata + (char_pos << kind_shift), udata, (size_t) (ulength << kind_shift));
28253 : } else {
28254 : #if PY_VERSION_HEX >= 0x030d0000
28255 : if (unlikely(PyUnicode_CopyCharacters(result_uval, char_pos, uval, 0, ulength) < 0)) goto bad;
28256 : #elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030300F0 || defined(_PyUnicode_FastCopyCharacters)
28257 0 : _PyUnicode_FastCopyCharacters(result_uval, char_pos, uval, 0, ulength);
28258 : #else
28259 : Py_ssize_t j;
28260 : for (j=0; j < ulength; j++) {
28261 : Py_UCS4 uchar = __Pyx_PyUnicode_READ(ukind, udata, j);
28262 : __Pyx_PyUnicode_WRITE(result_ukind, result_udata, char_pos+j, uchar);
28263 : }
28264 : #endif
28265 : }
28266 0 : char_pos += ulength;
28267 : }
28268 : return result_uval;
28269 0 : overflow:
28270 0 : PyErr_SetString(PyExc_OverflowError, "join() result is too long for a Python string");
28271 0 : bad:
28272 0 : Py_DECREF(result_uval);
28273 : return NULL;
28274 : #else
28275 : CYTHON_UNUSED_VAR(max_char);
28276 : CYTHON_UNUSED_VAR(result_ulength);
28277 : CYTHON_UNUSED_VAR(value_count);
28278 : return PyUnicode_Join(__pyx_empty_unicode, value_tuple);
28279 : #endif
28280 : }
28281 :
28282 : /* GetAttr */
28283 0 : static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
28284 : #if CYTHON_USE_TYPE_SLOTS
28285 : #if PY_MAJOR_VERSION >= 3
28286 0 : if (likely(PyUnicode_Check(n)))
28287 : #else
28288 : if (likely(PyString_Check(n)))
28289 : #endif
28290 0 : return __Pyx_PyObject_GetAttrStr(o, n);
28291 : #endif
28292 0 : return PyObject_GetAttr(o, n);
28293 : }
28294 :
28295 : /* GetItemInt */
28296 0 : static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) {
28297 0 : PyObject *r;
28298 0 : if (unlikely(!j)) return NULL;
28299 0 : r = PyObject_GetItem(o, j);
28300 0 : Py_DECREF(j);
28301 : return r;
28302 : }
28303 134 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
28304 : CYTHON_NCP_UNUSED int wraparound,
28305 : CYTHON_NCP_UNUSED int boundscheck) {
28306 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28307 134 : Py_ssize_t wrapped_i = i;
28308 134 : if (wraparound & unlikely(i < 0)) {
28309 0 : wrapped_i += PyList_GET_SIZE(o);
28310 : }
28311 134 : if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) {
28312 134 : PyObject *r = PyList_GET_ITEM(o, wrapped_i);
28313 134 : Py_INCREF(r);
28314 134 : return r;
28315 : }
28316 0 : return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
28317 : #else
28318 : return PySequence_GetItem(o, i);
28319 : #endif
28320 : }
28321 134 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
28322 : CYTHON_NCP_UNUSED int wraparound,
28323 : CYTHON_NCP_UNUSED int boundscheck) {
28324 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
28325 134 : Py_ssize_t wrapped_i = i;
28326 134 : if (wraparound & unlikely(i < 0)) {
28327 0 : wrapped_i += PyTuple_GET_SIZE(o);
28328 : }
28329 134 : if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) {
28330 134 : PyObject *r = PyTuple_GET_ITEM(o, wrapped_i);
28331 134 : Py_INCREF(r);
28332 134 : return r;
28333 : }
28334 0 : return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
28335 : #else
28336 : return PySequence_GetItem(o, i);
28337 : #endif
28338 : }
28339 0 : static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list,
28340 : CYTHON_NCP_UNUSED int wraparound,
28341 : CYTHON_NCP_UNUSED int boundscheck) {
28342 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
28343 0 : if (is_list || PyList_CheckExact(o)) {
28344 0 : Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o);
28345 0 : if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) {
28346 0 : PyObject *r = PyList_GET_ITEM(o, n);
28347 0 : Py_INCREF(r);
28348 0 : return r;
28349 : }
28350 : }
28351 0 : else if (PyTuple_CheckExact(o)) {
28352 0 : Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o);
28353 0 : if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) {
28354 0 : PyObject *r = PyTuple_GET_ITEM(o, n);
28355 0 : Py_INCREF(r);
28356 0 : return r;
28357 : }
28358 : } else {
28359 0 : PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
28360 0 : PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
28361 0 : if (mm && mm->mp_subscript) {
28362 0 : PyObject *r, *key = PyInt_FromSsize_t(i);
28363 0 : if (unlikely(!key)) return NULL;
28364 0 : r = mm->mp_subscript(o, key);
28365 0 : Py_DECREF(key);
28366 0 : return r;
28367 : }
28368 0 : if (likely(sm && sm->sq_item)) {
28369 0 : if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
28370 0 : Py_ssize_t l = sm->sq_length(o);
28371 0 : if (likely(l >= 0)) {
28372 0 : i += l;
28373 : } else {
28374 0 : if (!PyErr_ExceptionMatches(PyExc_OverflowError))
28375 : return NULL;
28376 0 : PyErr_Clear();
28377 : }
28378 : }
28379 0 : return sm->sq_item(o, i);
28380 : }
28381 : }
28382 : #else
28383 : if (is_list || !PyMapping_Check(o)) {
28384 : return PySequence_GetItem(o, i);
28385 : }
28386 : #endif
28387 0 : return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i));
28388 : }
28389 :
28390 : /* PyObjectCallOneArg */
28391 2 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) {
28392 2 : PyObject *args[2] = {NULL, arg};
28393 2 : return __Pyx_PyObject_FastCall(func, args+1, 1 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
28394 : }
28395 :
28396 : /* ObjectGetItem */
28397 : #if CYTHON_USE_TYPE_SLOTS
28398 0 : static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject *index) {
28399 0 : PyObject *runerr = NULL;
28400 0 : Py_ssize_t key_value;
28401 0 : key_value = __Pyx_PyIndex_AsSsize_t(index);
28402 0 : if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) {
28403 0 : return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1);
28404 : }
28405 0 : if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) {
28406 0 : __Pyx_TypeName index_type_name = __Pyx_PyType_GetName(Py_TYPE(index));
28407 0 : PyErr_Clear();
28408 0 : PyErr_Format(PyExc_IndexError,
28409 : "cannot fit '" __Pyx_FMT_TYPENAME "' into an index-sized integer", index_type_name);
28410 : __Pyx_DECREF_TypeName(index_type_name);
28411 : }
28412 : return NULL;
28413 : }
28414 0 : static PyObject *__Pyx_PyObject_GetItem_Slow(PyObject *obj, PyObject *key) {
28415 0 : __Pyx_TypeName obj_type_name;
28416 0 : if (likely(PyType_Check(obj))) {
28417 0 : PyObject *meth = __Pyx_PyObject_GetAttrStrNoError(obj, __pyx_n_s_class_getitem);
28418 0 : if (!meth) {
28419 0 : PyErr_Clear();
28420 : } else {
28421 0 : PyObject *result = __Pyx_PyObject_CallOneArg(meth, key);
28422 0 : Py_DECREF(meth);
28423 0 : return result;
28424 : }
28425 : }
28426 0 : obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
28427 0 : PyErr_Format(PyExc_TypeError,
28428 : "'" __Pyx_FMT_TYPENAME "' object is not subscriptable", obj_type_name);
28429 0 : __Pyx_DECREF_TypeName(obj_type_name);
28430 0 : return NULL;
28431 : }
28432 0 : static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject *key) {
28433 0 : PyTypeObject *tp = Py_TYPE(obj);
28434 0 : PyMappingMethods *mm = tp->tp_as_mapping;
28435 0 : PySequenceMethods *sm = tp->tp_as_sequence;
28436 0 : if (likely(mm && mm->mp_subscript)) {
28437 0 : return mm->mp_subscript(obj, key);
28438 : }
28439 0 : if (likely(sm && sm->sq_item)) {
28440 0 : return __Pyx_PyObject_GetIndex(obj, key);
28441 : }
28442 0 : return __Pyx_PyObject_GetItem_Slow(obj, key);
28443 : }
28444 : #endif
28445 :
28446 : /* KeywordStringCheck */
28447 0 : static int __Pyx_CheckKeywordStrings(
28448 : PyObject *kw,
28449 : const char* function_name,
28450 : int kw_allowed)
28451 : {
28452 0 : PyObject* key = 0;
28453 0 : Py_ssize_t pos = 0;
28454 : #if CYTHON_COMPILING_IN_PYPY
28455 : if (!kw_allowed && PyDict_Next(kw, &pos, &key, 0))
28456 : goto invalid_keyword;
28457 : return 1;
28458 : #else
28459 0 : if (CYTHON_METH_FASTCALL && likely(PyTuple_Check(kw))) {
28460 0 : Py_ssize_t kwsize;
28461 : #if CYTHON_ASSUME_SAFE_MACROS
28462 0 : kwsize = PyTuple_GET_SIZE(kw);
28463 : #else
28464 : kwsize = PyTuple_Size(kw);
28465 : if (kwsize < 0) return 0;
28466 : #endif
28467 0 : if (unlikely(kwsize == 0))
28468 : return 1;
28469 0 : if (!kw_allowed) {
28470 : #if CYTHON_ASSUME_SAFE_MACROS
28471 0 : key = PyTuple_GET_ITEM(kw, 0);
28472 : #else
28473 : key = PyTuple_GetItem(kw, pos);
28474 : if (!key) return 0;
28475 : #endif
28476 0 : goto invalid_keyword;
28477 : }
28478 : #if PY_VERSION_HEX < 0x03090000
28479 : for (pos = 0; pos < kwsize; pos++) {
28480 : #if CYTHON_ASSUME_SAFE_MACROS
28481 : key = PyTuple_GET_ITEM(kw, pos);
28482 : #else
28483 : key = PyTuple_GetItem(kw, pos);
28484 : if (!key) return 0;
28485 : #endif
28486 : if (unlikely(!PyUnicode_Check(key)))
28487 : goto invalid_keyword_type;
28488 : }
28489 : #endif
28490 : return 1;
28491 : }
28492 0 : while (PyDict_Next(kw, &pos, &key, 0)) {
28493 : #if PY_MAJOR_VERSION < 3
28494 : if (unlikely(!PyString_Check(key)))
28495 : #endif
28496 0 : if (unlikely(!PyUnicode_Check(key)))
28497 0 : goto invalid_keyword_type;
28498 : }
28499 0 : if (!kw_allowed && unlikely(key))
28500 0 : goto invalid_keyword;
28501 : return 1;
28502 0 : invalid_keyword_type:
28503 0 : PyErr_Format(PyExc_TypeError,
28504 : "%.200s() keywords must be strings", function_name);
28505 0 : return 0;
28506 : #endif
28507 0 : invalid_keyword:
28508 : #if PY_MAJOR_VERSION < 3
28509 : PyErr_Format(PyExc_TypeError,
28510 : "%.200s() got an unexpected keyword argument '%.200s'",
28511 : function_name, PyString_AsString(key));
28512 : #else
28513 0 : PyErr_Format(PyExc_TypeError,
28514 : "%s() got an unexpected keyword argument '%U'",
28515 : function_name, key);
28516 : #endif
28517 0 : return 0;
28518 : }
28519 :
28520 : /* DivInt[Py_ssize_t] */
28521 0 : static CYTHON_INLINE Py_ssize_t __Pyx_div_Py_ssize_t(Py_ssize_t a, Py_ssize_t b) {
28522 0 : Py_ssize_t q = a / b;
28523 0 : Py_ssize_t r = a - q*b;
28524 0 : q -= ((r != 0) & ((r ^ b) < 0));
28525 0 : return q;
28526 : }
28527 :
28528 : /* GetAttr3 */
28529 : #if __PYX_LIMITED_VERSION_HEX < 0x030d00A1
28530 0 : static PyObject *__Pyx_GetAttr3Default(PyObject *d) {
28531 0 : __Pyx_PyThreadState_declare
28532 0 : __Pyx_PyThreadState_assign
28533 0 : if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError)))
28534 : return NULL;
28535 0 : __Pyx_PyErr_Clear();
28536 0 : Py_INCREF(d);
28537 : return d;
28538 : }
28539 : #endif
28540 0 : static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) {
28541 0 : PyObject *r;
28542 : #if __PYX_LIMITED_VERSION_HEX >= 0x030d00A1
28543 : int res = PyObject_GetOptionalAttr(o, n, &r);
28544 : return (res != 0) ? r : __Pyx_NewRef(d);
28545 : #else
28546 : #if CYTHON_USE_TYPE_SLOTS
28547 0 : if (likely(PyString_Check(n))) {
28548 0 : r = __Pyx_PyObject_GetAttrStrNoError(o, n);
28549 0 : if (unlikely(!r) && likely(!PyErr_Occurred())) {
28550 0 : r = __Pyx_NewRef(d);
28551 : }
28552 0 : return r;
28553 : }
28554 : #endif
28555 0 : r = PyObject_GetAttr(o, n);
28556 0 : return (likely(r)) ? r : __Pyx_GetAttr3Default(d);
28557 : #endif
28558 : }
28559 :
28560 : /* PyDictVersioning */
28561 : #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS
28562 : static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) {
28563 : PyObject *dict = Py_TYPE(obj)->tp_dict;
28564 : return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
28565 : }
28566 : static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) {
28567 : PyObject **dictptr = NULL;
28568 : Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset;
28569 : if (offset) {
28570 : #if CYTHON_COMPILING_IN_CPYTHON
28571 : dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj);
28572 : #else
28573 : dictptr = _PyObject_GetDictPtr(obj);
28574 : #endif
28575 : }
28576 : return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
28577 : }
28578 : static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) {
28579 : PyObject *dict = Py_TYPE(obj)->tp_dict;
28580 : if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
28581 : return 0;
28582 : return obj_dict_version == __Pyx_get_object_dict_version(obj);
28583 : }
28584 : #endif
28585 :
28586 : /* GetModuleGlobalName */
28587 : #if CYTHON_USE_DICT_VERSIONS
28588 : static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value)
28589 : #else
28590 1 : static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name)
28591 : #endif
28592 : {
28593 1 : PyObject *result;
28594 : #if !CYTHON_AVOID_BORROWED_REFS
28595 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && PY_VERSION_HEX < 0x030d0000
28596 1 : result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash);
28597 : __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
28598 1 : if (likely(result)) {
28599 2 : return __Pyx_NewRef(result);
28600 0 : } else if (unlikely(PyErr_Occurred())) {
28601 : return NULL;
28602 : }
28603 : #elif CYTHON_COMPILING_IN_LIMITED_API
28604 : if (unlikely(!__pyx_m)) {
28605 : return NULL;
28606 : }
28607 : result = PyObject_GetAttr(__pyx_m, name);
28608 : if (likely(result)) {
28609 : return result;
28610 : }
28611 : #else
28612 : result = PyDict_GetItem(__pyx_d, name);
28613 : __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
28614 : if (likely(result)) {
28615 : return __Pyx_NewRef(result);
28616 : }
28617 : #endif
28618 : #else
28619 : result = PyObject_GetItem(__pyx_d, name);
28620 : __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
28621 : if (likely(result)) {
28622 : return __Pyx_NewRef(result);
28623 : }
28624 : PyErr_Clear();
28625 : #endif
28626 0 : return __Pyx_GetBuiltinName(name);
28627 : }
28628 :
28629 : /* RaiseTooManyValuesToUnpack */
28630 0 : static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) {
28631 0 : PyErr_Format(PyExc_ValueError,
28632 : "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected);
28633 0 : }
28634 :
28635 : /* RaiseNeedMoreValuesToUnpack */
28636 0 : static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) {
28637 0 : PyErr_Format(PyExc_ValueError,
28638 : "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack",
28639 : index, (index == 1) ? "" : "s");
28640 0 : }
28641 :
28642 : /* RaiseNoneIterError */
28643 0 : static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) {
28644 0 : PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
28645 0 : }
28646 :
28647 : /* ExtTypeTest */
28648 0 : static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
28649 0 : __Pyx_TypeName obj_type_name;
28650 0 : __Pyx_TypeName type_name;
28651 0 : if (unlikely(!type)) {
28652 0 : PyErr_SetString(PyExc_SystemError, "Missing type object");
28653 0 : return 0;
28654 : }
28655 0 : if (likely(__Pyx_TypeCheck(obj, type)))
28656 : return 1;
28657 0 : obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
28658 0 : type_name = __Pyx_PyType_GetName(type);
28659 0 : PyErr_Format(PyExc_TypeError,
28660 : "Cannot convert " __Pyx_FMT_TYPENAME " to " __Pyx_FMT_TYPENAME,
28661 : obj_type_name, type_name);
28662 0 : __Pyx_DECREF_TypeName(obj_type_name);
28663 0 : __Pyx_DECREF_TypeName(type_name);
28664 0 : return 0;
28665 : }
28666 :
28667 : /* GetTopmostException */
28668 : #if CYTHON_USE_EXC_INFO_STACK && CYTHON_FAST_THREAD_STATE
28669 : static _PyErr_StackItem *
28670 6 : __Pyx_PyErr_GetTopmostException(PyThreadState *tstate)
28671 : {
28672 6 : _PyErr_StackItem *exc_info = tstate->exc_info;
28673 26 : while ((exc_info->exc_value == NULL || exc_info->exc_value == Py_None) &&
28674 26 : exc_info->previous_item != NULL)
28675 : {
28676 : exc_info = exc_info->previous_item;
28677 : }
28678 6 : return exc_info;
28679 : }
28680 : #endif
28681 :
28682 : /* SaveResetException */
28683 : #if CYTHON_FAST_THREAD_STATE
28684 6 : static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
28685 : #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
28686 6 : _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
28687 6 : PyObject *exc_value = exc_info->exc_value;
28688 6 : if (exc_value == NULL || exc_value == Py_None) {
28689 6 : *value = NULL;
28690 6 : *type = NULL;
28691 6 : *tb = NULL;
28692 : } else {
28693 0 : *value = exc_value;
28694 0 : Py_INCREF(*value);
28695 0 : *type = (PyObject*) Py_TYPE(exc_value);
28696 0 : Py_INCREF(*type);
28697 0 : *tb = PyException_GetTraceback(exc_value);
28698 : }
28699 : #elif CYTHON_USE_EXC_INFO_STACK
28700 : _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate);
28701 : *type = exc_info->exc_type;
28702 : *value = exc_info->exc_value;
28703 : *tb = exc_info->exc_traceback;
28704 : Py_XINCREF(*type);
28705 : Py_XINCREF(*value);
28706 : Py_XINCREF(*tb);
28707 : #else
28708 : *type = tstate->exc_type;
28709 : *value = tstate->exc_value;
28710 : *tb = tstate->exc_traceback;
28711 : Py_XINCREF(*type);
28712 : Py_XINCREF(*value);
28713 : Py_XINCREF(*tb);
28714 : #endif
28715 6 : }
28716 1 : static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) {
28717 : #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
28718 1 : _PyErr_StackItem *exc_info = tstate->exc_info;
28719 1 : PyObject *tmp_value = exc_info->exc_value;
28720 1 : exc_info->exc_value = value;
28721 1 : Py_XDECREF(tmp_value);
28722 1 : Py_XDECREF(type);
28723 1 : Py_XDECREF(tb);
28724 : #else
28725 : PyObject *tmp_type, *tmp_value, *tmp_tb;
28726 : #if CYTHON_USE_EXC_INFO_STACK
28727 : _PyErr_StackItem *exc_info = tstate->exc_info;
28728 : tmp_type = exc_info->exc_type;
28729 : tmp_value = exc_info->exc_value;
28730 : tmp_tb = exc_info->exc_traceback;
28731 : exc_info->exc_type = type;
28732 : exc_info->exc_value = value;
28733 : exc_info->exc_traceback = tb;
28734 : #else
28735 : tmp_type = tstate->exc_type;
28736 : tmp_value = tstate->exc_value;
28737 : tmp_tb = tstate->exc_traceback;
28738 : tstate->exc_type = type;
28739 : tstate->exc_value = value;
28740 : tstate->exc_traceback = tb;
28741 : #endif
28742 : Py_XDECREF(tmp_type);
28743 : Py_XDECREF(tmp_value);
28744 : Py_XDECREF(tmp_tb);
28745 : #endif
28746 1 : }
28747 : #endif
28748 :
28749 : /* GetException */
28750 : #if CYTHON_FAST_THREAD_STATE
28751 0 : static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb)
28752 : #else
28753 : static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb)
28754 : #endif
28755 : {
28756 0 : PyObject *local_type = NULL, *local_value, *local_tb = NULL;
28757 : #if CYTHON_FAST_THREAD_STATE
28758 0 : PyObject *tmp_type, *tmp_value, *tmp_tb;
28759 : #if PY_VERSION_HEX >= 0x030C00A6
28760 0 : local_value = tstate->current_exception;
28761 0 : tstate->current_exception = 0;
28762 0 : if (likely(local_value)) {
28763 0 : local_type = (PyObject*) Py_TYPE(local_value);
28764 0 : Py_INCREF(local_type);
28765 0 : local_tb = PyException_GetTraceback(local_value);
28766 : }
28767 : #else
28768 : local_type = tstate->curexc_type;
28769 : local_value = tstate->curexc_value;
28770 : local_tb = tstate->curexc_traceback;
28771 : tstate->curexc_type = 0;
28772 : tstate->curexc_value = 0;
28773 : tstate->curexc_traceback = 0;
28774 : #endif
28775 : #else
28776 : PyErr_Fetch(&local_type, &local_value, &local_tb);
28777 : #endif
28778 0 : PyErr_NormalizeException(&local_type, &local_value, &local_tb);
28779 : #if CYTHON_FAST_THREAD_STATE && PY_VERSION_HEX >= 0x030C00A6
28780 0 : if (unlikely(tstate->current_exception))
28781 : #elif CYTHON_FAST_THREAD_STATE
28782 : if (unlikely(tstate->curexc_type))
28783 : #else
28784 : if (unlikely(PyErr_Occurred()))
28785 : #endif
28786 0 : goto bad;
28787 : #if PY_MAJOR_VERSION >= 3
28788 0 : if (local_tb) {
28789 0 : if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
28790 0 : goto bad;
28791 : }
28792 : #endif
28793 0 : Py_XINCREF(local_tb);
28794 0 : Py_XINCREF(local_type);
28795 0 : Py_XINCREF(local_value);
28796 0 : *type = local_type;
28797 0 : *value = local_value;
28798 0 : *tb = local_tb;
28799 : #if CYTHON_FAST_THREAD_STATE
28800 : #if CYTHON_USE_EXC_INFO_STACK
28801 : {
28802 0 : _PyErr_StackItem *exc_info = tstate->exc_info;
28803 : #if PY_VERSION_HEX >= 0x030B00a4
28804 0 : tmp_value = exc_info->exc_value;
28805 0 : exc_info->exc_value = local_value;
28806 0 : tmp_type = NULL;
28807 0 : tmp_tb = NULL;
28808 0 : Py_XDECREF(local_type);
28809 0 : Py_XDECREF(local_tb);
28810 : #else
28811 : tmp_type = exc_info->exc_type;
28812 : tmp_value = exc_info->exc_value;
28813 : tmp_tb = exc_info->exc_traceback;
28814 : exc_info->exc_type = local_type;
28815 : exc_info->exc_value = local_value;
28816 : exc_info->exc_traceback = local_tb;
28817 : #endif
28818 : }
28819 : #else
28820 : tmp_type = tstate->exc_type;
28821 : tmp_value = tstate->exc_value;
28822 : tmp_tb = tstate->exc_traceback;
28823 : tstate->exc_type = local_type;
28824 : tstate->exc_value = local_value;
28825 : tstate->exc_traceback = local_tb;
28826 : #endif
28827 0 : Py_XDECREF(tmp_type);
28828 0 : Py_XDECREF(tmp_value);
28829 0 : Py_XDECREF(tmp_tb);
28830 : #else
28831 : PyErr_SetExcInfo(local_type, local_value, local_tb);
28832 : #endif
28833 0 : return 0;
28834 0 : bad:
28835 0 : *type = 0;
28836 0 : *value = 0;
28837 0 : *tb = 0;
28838 0 : Py_XDECREF(local_type);
28839 0 : Py_XDECREF(local_value);
28840 0 : Py_XDECREF(local_tb);
28841 0 : return -1;
28842 : }
28843 :
28844 : /* SwapException */
28845 : #if CYTHON_FAST_THREAD_STATE
28846 0 : static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) {
28847 0 : PyObject *tmp_type, *tmp_value, *tmp_tb;
28848 : #if CYTHON_USE_EXC_INFO_STACK && PY_VERSION_HEX >= 0x030B00a4
28849 0 : _PyErr_StackItem *exc_info = tstate->exc_info;
28850 0 : tmp_value = exc_info->exc_value;
28851 0 : exc_info->exc_value = *value;
28852 0 : if (tmp_value == NULL || tmp_value == Py_None) {
28853 0 : Py_XDECREF(tmp_value);
28854 0 : tmp_value = NULL;
28855 0 : tmp_type = NULL;
28856 0 : tmp_tb = NULL;
28857 : } else {
28858 0 : tmp_type = (PyObject*) Py_TYPE(tmp_value);
28859 0 : Py_INCREF(tmp_type);
28860 : #if CYTHON_COMPILING_IN_CPYTHON
28861 0 : tmp_tb = ((PyBaseExceptionObject*) tmp_value)->traceback;
28862 0 : Py_XINCREF(tmp_tb);
28863 : #else
28864 : tmp_tb = PyException_GetTraceback(tmp_value);
28865 : #endif
28866 : }
28867 : #elif CYTHON_USE_EXC_INFO_STACK
28868 : _PyErr_StackItem *exc_info = tstate->exc_info;
28869 : tmp_type = exc_info->exc_type;
28870 : tmp_value = exc_info->exc_value;
28871 : tmp_tb = exc_info->exc_traceback;
28872 : exc_info->exc_type = *type;
28873 : exc_info->exc_value = *value;
28874 : exc_info->exc_traceback = *tb;
28875 : #else
28876 : tmp_type = tstate->exc_type;
28877 : tmp_value = tstate->exc_value;
28878 : tmp_tb = tstate->exc_traceback;
28879 : tstate->exc_type = *type;
28880 : tstate->exc_value = *value;
28881 : tstate->exc_traceback = *tb;
28882 : #endif
28883 0 : *type = tmp_type;
28884 0 : *value = tmp_value;
28885 0 : *tb = tmp_tb;
28886 0 : }
28887 : #else
28888 : static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
28889 : PyObject *tmp_type, *tmp_value, *tmp_tb;
28890 : PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb);
28891 : PyErr_SetExcInfo(*type, *value, *tb);
28892 : *type = tmp_type;
28893 : *value = tmp_value;
28894 : *tb = tmp_tb;
28895 : }
28896 : #endif
28897 :
28898 : /* Import */
28899 1 : static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) {
28900 1 : PyObject *module = 0;
28901 1 : PyObject *empty_dict = 0;
28902 1 : PyObject *empty_list = 0;
28903 : #if PY_MAJOR_VERSION < 3
28904 : PyObject *py_import;
28905 : py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import);
28906 : if (unlikely(!py_import))
28907 : goto bad;
28908 : if (!from_list) {
28909 : empty_list = PyList_New(0);
28910 : if (unlikely(!empty_list))
28911 : goto bad;
28912 : from_list = empty_list;
28913 : }
28914 : #endif
28915 1 : empty_dict = PyDict_New();
28916 1 : if (unlikely(!empty_dict))
28917 0 : goto bad;
28918 : {
28919 : #if PY_MAJOR_VERSION >= 3
28920 1 : if (level == -1) {
28921 0 : if (strchr(__Pyx_MODULE_NAME, '.') != NULL) {
28922 0 : module = PyImport_ImportModuleLevelObject(
28923 0 : name, __pyx_d, empty_dict, from_list, 1);
28924 0 : if (unlikely(!module)) {
28925 0 : if (unlikely(!PyErr_ExceptionMatches(PyExc_ImportError)))
28926 0 : goto bad;
28927 0 : PyErr_Clear();
28928 : }
28929 : }
28930 0 : level = 0;
28931 : }
28932 : #endif
28933 0 : if (!module) {
28934 : #if PY_MAJOR_VERSION < 3
28935 : PyObject *py_level = PyInt_FromLong(level);
28936 : if (unlikely(!py_level))
28937 : goto bad;
28938 : module = PyObject_CallFunctionObjArgs(py_import,
28939 : name, __pyx_d, empty_dict, from_list, py_level, (PyObject *)NULL);
28940 : Py_DECREF(py_level);
28941 : #else
28942 1 : module = PyImport_ImportModuleLevelObject(
28943 1 : name, __pyx_d, empty_dict, from_list, level);
28944 : #endif
28945 : }
28946 : }
28947 1 : bad:
28948 1 : Py_XDECREF(empty_dict);
28949 1 : Py_XDECREF(empty_list);
28950 : #if PY_MAJOR_VERSION < 3
28951 : Py_XDECREF(py_import);
28952 : #endif
28953 1 : return module;
28954 : }
28955 :
28956 : /* ImportDottedModule */
28957 : #if PY_MAJOR_VERSION >= 3
28958 0 : static PyObject *__Pyx__ImportDottedModule_Error(PyObject *name, PyObject *parts_tuple, Py_ssize_t count) {
28959 0 : PyObject *partial_name = NULL, *slice = NULL, *sep = NULL;
28960 0 : if (unlikely(PyErr_Occurred())) {
28961 0 : PyErr_Clear();
28962 : }
28963 0 : if (likely(PyTuple_GET_SIZE(parts_tuple) == count)) {
28964 : partial_name = name;
28965 : } else {
28966 0 : slice = PySequence_GetSlice(parts_tuple, 0, count);
28967 0 : if (unlikely(!slice))
28968 0 : goto bad;
28969 0 : sep = PyUnicode_FromStringAndSize(".", 1);
28970 0 : if (unlikely(!sep))
28971 0 : goto bad;
28972 0 : partial_name = PyUnicode_Join(sep, slice);
28973 : }
28974 0 : PyErr_Format(
28975 : #if PY_MAJOR_VERSION < 3
28976 : PyExc_ImportError,
28977 : "No module named '%s'", PyString_AS_STRING(partial_name));
28978 : #else
28979 : #if PY_VERSION_HEX >= 0x030600B1
28980 : PyExc_ModuleNotFoundError,
28981 : #else
28982 : PyExc_ImportError,
28983 : #endif
28984 : "No module named '%U'", partial_name);
28985 : #endif
28986 0 : bad:
28987 0 : Py_XDECREF(sep);
28988 0 : Py_XDECREF(slice);
28989 0 : Py_XDECREF(partial_name);
28990 0 : return NULL;
28991 : }
28992 : #endif
28993 : #if PY_MAJOR_VERSION >= 3
28994 0 : static PyObject *__Pyx__ImportDottedModule_Lookup(PyObject *name) {
28995 0 : PyObject *imported_module;
28996 : #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400)
28997 : PyObject *modules = PyImport_GetModuleDict();
28998 : if (unlikely(!modules))
28999 : return NULL;
29000 : imported_module = __Pyx_PyDict_GetItemStr(modules, name);
29001 : Py_XINCREF(imported_module);
29002 : #else
29003 0 : imported_module = PyImport_GetModule(name);
29004 : #endif
29005 0 : return imported_module;
29006 : }
29007 : #endif
29008 : #if PY_MAJOR_VERSION >= 3
29009 0 : static PyObject *__Pyx_ImportDottedModule_WalkParts(PyObject *module, PyObject *name, PyObject *parts_tuple) {
29010 0 : Py_ssize_t i, nparts;
29011 0 : nparts = PyTuple_GET_SIZE(parts_tuple);
29012 0 : for (i=1; i < nparts && module; i++) {
29013 0 : PyObject *part, *submodule;
29014 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
29015 0 : part = PyTuple_GET_ITEM(parts_tuple, i);
29016 : #else
29017 : part = PySequence_ITEM(parts_tuple, i);
29018 : #endif
29019 0 : submodule = __Pyx_PyObject_GetAttrStrNoError(module, part);
29020 : #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
29021 : Py_DECREF(part);
29022 : #endif
29023 0 : Py_DECREF(module);
29024 0 : module = submodule;
29025 : }
29026 0 : if (unlikely(!module)) {
29027 0 : return __Pyx__ImportDottedModule_Error(name, parts_tuple, i);
29028 : }
29029 : return module;
29030 : }
29031 : #endif
29032 0 : static PyObject *__Pyx__ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
29033 : #if PY_MAJOR_VERSION < 3
29034 : PyObject *module, *from_list, *star = __pyx_n_s__3;
29035 : CYTHON_UNUSED_VAR(parts_tuple);
29036 : from_list = PyList_New(1);
29037 : if (unlikely(!from_list))
29038 : return NULL;
29039 : Py_INCREF(star);
29040 : PyList_SET_ITEM(from_list, 0, star);
29041 : module = __Pyx_Import(name, from_list, 0);
29042 : Py_DECREF(from_list);
29043 : return module;
29044 : #else
29045 0 : PyObject *imported_module;
29046 0 : PyObject *module = __Pyx_Import(name, NULL, 0);
29047 0 : if (!parts_tuple || unlikely(!module))
29048 : return module;
29049 0 : imported_module = __Pyx__ImportDottedModule_Lookup(name);
29050 0 : if (likely(imported_module)) {
29051 0 : Py_DECREF(module);
29052 0 : return imported_module;
29053 : }
29054 0 : PyErr_Clear();
29055 0 : return __Pyx_ImportDottedModule_WalkParts(module, name, parts_tuple);
29056 : #endif
29057 : }
29058 0 : static PyObject *__Pyx_ImportDottedModule(PyObject *name, PyObject *parts_tuple) {
29059 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030400B1
29060 0 : PyObject *module = __Pyx__ImportDottedModule_Lookup(name);
29061 0 : if (likely(module)) {
29062 0 : PyObject *spec = __Pyx_PyObject_GetAttrStrNoError(module, __pyx_n_s_spec);
29063 0 : if (likely(spec)) {
29064 0 : PyObject *unsafe = __Pyx_PyObject_GetAttrStrNoError(spec, __pyx_n_s_initializing);
29065 0 : if (likely(!unsafe || !__Pyx_PyObject_IsTrue(unsafe))) {
29066 0 : Py_DECREF(spec);
29067 : spec = NULL;
29068 : }
29069 0 : Py_XDECREF(unsafe);
29070 : }
29071 0 : if (likely(!spec)) {
29072 0 : PyErr_Clear();
29073 0 : return module;
29074 : }
29075 0 : Py_DECREF(spec);
29076 0 : Py_DECREF(module);
29077 0 : } else if (PyErr_Occurred()) {
29078 0 : PyErr_Clear();
29079 : }
29080 : #endif
29081 0 : return __Pyx__ImportDottedModule(name, parts_tuple);
29082 : }
29083 :
29084 : /* FastTypeChecks */
29085 : #if CYTHON_COMPILING_IN_CPYTHON
29086 : static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) {
29087 0 : while (a) {
29088 0 : a = __Pyx_PyType_GetSlot(a, tp_base, PyTypeObject*);
29089 0 : if (a == b)
29090 : return 1;
29091 : }
29092 0 : return b == &PyBaseObject_Type;
29093 : }
29094 542 : static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) {
29095 542 : PyObject *mro;
29096 542 : if (a == b) return 1;
29097 408 : mro = a->tp_mro;
29098 408 : if (likely(mro)) {
29099 408 : Py_ssize_t i, n;
29100 408 : n = PyTuple_GET_SIZE(mro);
29101 1221 : for (i = 0; i < n; i++) {
29102 816 : if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b)
29103 : return 1;
29104 : }
29105 : return 0;
29106 : }
29107 542 : return __Pyx_InBases(a, b);
29108 : }
29109 16 : static CYTHON_INLINE int __Pyx_IsAnySubtype2(PyTypeObject *cls, PyTypeObject *a, PyTypeObject *b) {
29110 16 : PyObject *mro;
29111 16 : if (cls == a || cls == b) return 1;
29112 2 : mro = cls->tp_mro;
29113 2 : if (likely(mro)) {
29114 2 : Py_ssize_t i, n;
29115 2 : n = PyTuple_GET_SIZE(mro);
29116 6 : for (i = 0; i < n; i++) {
29117 4 : PyObject *base = PyTuple_GET_ITEM(mro, i);
29118 4 : if (base == (PyObject *)a || base == (PyObject *)b)
29119 : return 1;
29120 : }
29121 : return 0;
29122 : }
29123 0 : return __Pyx_InBases(cls, a) || __Pyx_InBases(cls, b);
29124 : }
29125 : #if PY_MAJOR_VERSION == 2
29126 : static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) {
29127 : PyObject *exception, *value, *tb;
29128 : int res;
29129 : __Pyx_PyThreadState_declare
29130 : __Pyx_PyThreadState_assign
29131 : __Pyx_ErrFetch(&exception, &value, &tb);
29132 : res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0;
29133 : if (unlikely(res == -1)) {
29134 : PyErr_WriteUnraisable(err);
29135 : res = 0;
29136 : }
29137 : if (!res) {
29138 : res = PyObject_IsSubclass(err, exc_type2);
29139 : if (unlikely(res == -1)) {
29140 : PyErr_WriteUnraisable(err);
29141 : res = 0;
29142 : }
29143 : }
29144 : __Pyx_ErrRestore(exception, value, tb);
29145 : return res;
29146 : }
29147 : #else
29148 0 : static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) {
29149 0 : if (exc_type1) {
29150 0 : return __Pyx_IsAnySubtype2((PyTypeObject*)err, (PyTypeObject*)exc_type1, (PyTypeObject*)exc_type2);
29151 : } else {
29152 0 : return __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2);
29153 : }
29154 : }
29155 : #endif
29156 0 : static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) {
29157 0 : Py_ssize_t i, n;
29158 0 : assert(PyExceptionClass_Check(exc_type));
29159 0 : n = PyTuple_GET_SIZE(tuple);
29160 : #if PY_MAJOR_VERSION >= 3
29161 0 : for (i=0; i<n; i++) {
29162 0 : if (exc_type == PyTuple_GET_ITEM(tuple, i)) return 1;
29163 : }
29164 : #endif
29165 0 : for (i=0; i<n; i++) {
29166 0 : PyObject *t = PyTuple_GET_ITEM(tuple, i);
29167 : #if PY_MAJOR_VERSION < 3
29168 : if (likely(exc_type == t)) return 1;
29169 : #endif
29170 0 : if (likely(PyExceptionClass_Check(t))) {
29171 0 : if (__Pyx_inner_PyErr_GivenExceptionMatches2(exc_type, NULL, t)) return 1;
29172 : } else {
29173 0 : }
29174 : }
29175 : return 0;
29176 : }
29177 0 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject* exc_type) {
29178 0 : if (likely(err == exc_type)) return 1;
29179 0 : if (likely(PyExceptionClass_Check(err))) {
29180 0 : if (likely(PyExceptionClass_Check(exc_type))) {
29181 0 : return __Pyx_inner_PyErr_GivenExceptionMatches2(err, NULL, exc_type);
29182 0 : } else if (likely(PyTuple_Check(exc_type))) {
29183 0 : return __Pyx_PyErr_GivenExceptionMatchesTuple(err, exc_type);
29184 : } else {
29185 0 : }
29186 : }
29187 0 : return PyErr_GivenExceptionMatches(err, exc_type);
29188 : }
29189 0 : static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *exc_type1, PyObject *exc_type2) {
29190 0 : assert(PyExceptionClass_Check(exc_type1));
29191 0 : assert(PyExceptionClass_Check(exc_type2));
29192 0 : if (likely(err == exc_type1 || err == exc_type2)) return 1;
29193 0 : if (likely(PyExceptionClass_Check(err))) {
29194 0 : return __Pyx_inner_PyErr_GivenExceptionMatches2(err, exc_type1, exc_type2);
29195 : }
29196 0 : return (PyErr_GivenExceptionMatches(err, exc_type1) || PyErr_GivenExceptionMatches(err, exc_type2));
29197 : }
29198 : #endif
29199 :
29200 : /* PySequenceMultiply */
29201 0 : static PyObject* __Pyx_PySequence_Multiply_Generic(PyObject *seq, Py_ssize_t mul) {
29202 0 : PyObject *result, *pymul = PyInt_FromSsize_t(mul);
29203 0 : if (unlikely(!pymul))
29204 : return NULL;
29205 0 : result = PyNumber_Multiply(seq, pymul);
29206 0 : Py_DECREF(pymul);
29207 : return result;
29208 : }
29209 0 : static CYTHON_INLINE PyObject* __Pyx_PySequence_Multiply(PyObject *seq, Py_ssize_t mul) {
29210 : #if CYTHON_USE_TYPE_SLOTS
29211 0 : PyTypeObject *type = Py_TYPE(seq);
29212 0 : if (likely(type->tp_as_sequence && type->tp_as_sequence->sq_repeat)) {
29213 0 : return type->tp_as_sequence->sq_repeat(seq, mul);
29214 : } else
29215 : #endif
29216 : {
29217 0 : return __Pyx_PySequence_Multiply_Generic(seq, mul);
29218 : }
29219 : }
29220 :
29221 : /* SetItemInt */
29222 0 : static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) {
29223 0 : int r;
29224 0 : if (unlikely(!j)) return -1;
29225 0 : r = PyObject_SetItem(o, j, v);
29226 0 : Py_DECREF(j);
29227 : return r;
29228 : }
29229 134 : static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list,
29230 : CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) {
29231 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS
29232 134 : if (is_list || PyList_CheckExact(o)) {
29233 134 : Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o));
29234 134 : if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) {
29235 134 : PyObject* old = PyList_GET_ITEM(o, n);
29236 134 : Py_INCREF(v);
29237 134 : PyList_SET_ITEM(o, n, v);
29238 134 : Py_DECREF(old);
29239 134 : return 1;
29240 : }
29241 : } else {
29242 0 : PyMappingMethods *mm = Py_TYPE(o)->tp_as_mapping;
29243 0 : PySequenceMethods *sm = Py_TYPE(o)->tp_as_sequence;
29244 0 : if (mm && mm->mp_ass_subscript) {
29245 0 : int r;
29246 0 : PyObject *key = PyInt_FromSsize_t(i);
29247 0 : if (unlikely(!key)) return -1;
29248 0 : r = mm->mp_ass_subscript(o, key, v);
29249 0 : Py_DECREF(key);
29250 0 : return r;
29251 : }
29252 0 : if (likely(sm && sm->sq_ass_item)) {
29253 0 : if (wraparound && unlikely(i < 0) && likely(sm->sq_length)) {
29254 0 : Py_ssize_t l = sm->sq_length(o);
29255 0 : if (likely(l >= 0)) {
29256 0 : i += l;
29257 : } else {
29258 0 : if (!PyErr_ExceptionMatches(PyExc_OverflowError))
29259 : return -1;
29260 0 : PyErr_Clear();
29261 : }
29262 : }
29263 0 : return sm->sq_ass_item(o, i, v);
29264 : }
29265 : }
29266 : #else
29267 : if (is_list || !PyMapping_Check(o))
29268 : {
29269 : return PySequence_SetItem(o, i, v);
29270 : }
29271 : #endif
29272 0 : return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v);
29273 : }
29274 :
29275 : /* RaiseUnboundLocalError */
29276 0 : static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
29277 0 : PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname);
29278 : }
29279 :
29280 : /* DivInt[long] */
29281 0 : static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
29282 0 : long q = a / b;
29283 0 : long r = a - q*b;
29284 0 : q -= ((r != 0) & ((r ^ b) < 0));
29285 0 : return q;
29286 : }
29287 :
29288 : /* ImportFrom */
29289 0 : static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
29290 0 : PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
29291 0 : if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
29292 0 : const char* module_name_str = 0;
29293 0 : PyObject* module_name = 0;
29294 0 : PyObject* module_dot = 0;
29295 0 : PyObject* full_name = 0;
29296 0 : PyErr_Clear();
29297 0 : module_name_str = PyModule_GetName(module);
29298 0 : if (unlikely(!module_name_str)) { goto modbad; }
29299 0 : module_name = PyUnicode_FromString(module_name_str);
29300 0 : if (unlikely(!module_name)) { goto modbad; }
29301 0 : module_dot = PyUnicode_Concat(module_name, __pyx_kp_u__2);
29302 0 : if (unlikely(!module_dot)) { goto modbad; }
29303 0 : full_name = PyUnicode_Concat(module_dot, name);
29304 0 : if (unlikely(!full_name)) { goto modbad; }
29305 : #if PY_VERSION_HEX < 0x030700A1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400)
29306 : {
29307 : PyObject *modules = PyImport_GetModuleDict();
29308 : if (unlikely(!modules))
29309 : goto modbad;
29310 : value = PyObject_GetItem(modules, full_name);
29311 : }
29312 : #else
29313 0 : value = PyImport_GetModule(full_name);
29314 : #endif
29315 0 : modbad:
29316 0 : Py_XDECREF(full_name);
29317 0 : Py_XDECREF(module_dot);
29318 0 : Py_XDECREF(module_name);
29319 : }
29320 0 : if (unlikely(!value)) {
29321 0 : PyErr_Format(PyExc_ImportError,
29322 : #if PY_MAJOR_VERSION < 3
29323 : "cannot import name %.230s", PyString_AS_STRING(name));
29324 : #else
29325 : "cannot import name %S", name);
29326 : #endif
29327 : }
29328 0 : return value;
29329 : }
29330 :
29331 : /* HasAttr */
29332 0 : static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) {
29333 0 : PyObject *r;
29334 0 : if (unlikely(!__Pyx_PyBaseString_Check(n))) {
29335 0 : PyErr_SetString(PyExc_TypeError,
29336 : "hasattr(): attribute name must be string");
29337 0 : return -1;
29338 : }
29339 0 : r = __Pyx_GetAttr(o, n);
29340 0 : if (!r) {
29341 0 : PyErr_Clear();
29342 0 : return 0;
29343 : } else {
29344 0 : Py_DECREF(r);
29345 0 : return 1;
29346 : }
29347 : }
29348 :
29349 : /* DictGetItem */
29350 : #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY
29351 134 : static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) {
29352 134 : PyObject *value;
29353 134 : value = PyDict_GetItemWithError(d, key);
29354 134 : if (unlikely(!value)) {
29355 0 : if (!PyErr_Occurred()) {
29356 0 : if (unlikely(PyTuple_Check(key))) {
29357 0 : PyObject* args = PyTuple_Pack(1, key);
29358 0 : if (likely(args)) {
29359 0 : PyErr_SetObject(PyExc_KeyError, args);
29360 0 : Py_DECREF(args);
29361 : }
29362 : } else {
29363 0 : PyErr_SetObject(PyExc_KeyError, key);
29364 : }
29365 : }
29366 0 : return NULL;
29367 : }
29368 134 : Py_INCREF(value);
29369 : return value;
29370 : }
29371 : #endif
29372 :
29373 : /* UnicodeAsUCS4 */
29374 134 : static CYTHON_INLINE Py_UCS4 __Pyx_PyUnicode_AsPy_UCS4(PyObject* x) {
29375 134 : Py_ssize_t length;
29376 : #if CYTHON_PEP393_ENABLED
29377 134 : length = PyUnicode_GET_LENGTH(x);
29378 134 : if (likely(length == 1)) {
29379 134 : return PyUnicode_READ_CHAR(x, 0);
29380 : }
29381 : #else
29382 : length = PyUnicode_GET_SIZE(x);
29383 : if (likely(length == 1)) {
29384 : return PyUnicode_AS_UNICODE(x)[0];
29385 : }
29386 : #if Py_UNICODE_SIZE == 2
29387 : else if (PyUnicode_GET_SIZE(x) == 2) {
29388 : Py_UCS4 high_val = PyUnicode_AS_UNICODE(x)[0];
29389 : if (high_val >= 0xD800 && high_val <= 0xDBFF) {
29390 : Py_UCS4 low_val = PyUnicode_AS_UNICODE(x)[1];
29391 : if (low_val >= 0xDC00 && low_val <= 0xDFFF) {
29392 : return 0x10000 + (((high_val & ((1<<10)-1)) << 10) | (low_val & ((1<<10)-1)));
29393 : }
29394 : }
29395 : }
29396 : #endif
29397 : #endif
29398 0 : PyErr_Format(PyExc_ValueError,
29399 : "only single character unicode strings can be converted to Py_UCS4, "
29400 : "got length %" CYTHON_FORMAT_SSIZE_T "d", length);
29401 0 : return (Py_UCS4)-1;
29402 : }
29403 :
29404 : /* object_ord */
29405 0 : static long __Pyx__PyObject_Ord(PyObject* c) {
29406 0 : Py_ssize_t size;
29407 0 : if (PyBytes_Check(c)) {
29408 0 : size = PyBytes_GET_SIZE(c);
29409 0 : if (likely(size == 1)) {
29410 0 : return (unsigned char) PyBytes_AS_STRING(c)[0];
29411 : }
29412 : #if PY_MAJOR_VERSION < 3
29413 : } else if (PyUnicode_Check(c)) {
29414 : return (long)__Pyx_PyUnicode_AsPy_UCS4(c);
29415 : #endif
29416 : #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
29417 0 : } else if (PyByteArray_Check(c)) {
29418 0 : size = PyByteArray_GET_SIZE(c);
29419 0 : if (likely(size == 1)) {
29420 0 : return (unsigned char) PyByteArray_AS_STRING(c)[0];
29421 : }
29422 : #endif
29423 : } else {
29424 0 : __Pyx_TypeName c_type_name = __Pyx_PyType_GetName(Py_TYPE(c));
29425 0 : PyErr_Format(PyExc_TypeError,
29426 : "ord() expected string of length 1, but " __Pyx_FMT_TYPENAME " found",
29427 : c_type_name);
29428 0 : __Pyx_DECREF_TypeName(c_type_name);
29429 0 : return (long)(Py_UCS4)-1;
29430 : }
29431 0 : PyErr_Format(PyExc_TypeError,
29432 : "ord() expected a character, but string of length %zd found", size);
29433 0 : return (long)(Py_UCS4)-1;
29434 : }
29435 :
29436 : /* memoryview_get_from_buffer */
29437 : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
29438 : #else
29439 : static Py_ssize_t __Pyx_PyMemoryView_Get_itemsize(PyObject *obj) {
29440 : Py_ssize_t result;
29441 : PyObject *attr = PyObject_GetAttr(obj, __pyx_n_s_itemsize);
29442 : if (!attr) {
29443 : goto bad;
29444 : }
29445 : result = PyLong_AsSsize_t(attr);
29446 : Py_DECREF(attr);
29447 : return result;
29448 : bad:
29449 : Py_XDECREF(attr);
29450 : return -1;
29451 : }
29452 : #endif
29453 :
29454 : /* memoryview_get_from_buffer */
29455 : #if !CYTHON_COMPILING_IN_LIMITED_API || CYTHON_LIMITED_API >= 0x030b0000
29456 : #else
29457 : static int __Pyx_PyMemoryView_Get_ndim(PyObject *obj) {
29458 : int result;
29459 : PyObject *attr = PyObject_GetAttr(obj, __pyx_n_s_ndim);
29460 : if (!attr) {
29461 : goto bad;
29462 : }
29463 : result = PyLong_AsLong(attr);
29464 : Py_DECREF(attr);
29465 : return result;
29466 : bad:
29467 : Py_XDECREF(attr);
29468 : return -1;
29469 : }
29470 : #endif
29471 :
29472 : /* IterFinish */
29473 0 : static CYTHON_INLINE int __Pyx_IterFinish(void) {
29474 0 : PyObject* exc_type;
29475 0 : __Pyx_PyThreadState_declare
29476 0 : __Pyx_PyThreadState_assign
29477 0 : exc_type = __Pyx_PyErr_CurrentExceptionType();
29478 0 : if (unlikely(exc_type)) {
29479 0 : if (unlikely(!__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration)))
29480 : return -1;
29481 0 : __Pyx_PyErr_Clear();
29482 0 : return 0;
29483 : }
29484 : return 0;
29485 : }
29486 :
29487 : /* PyObjectCallNoArg */
29488 : static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) {
29489 : PyObject *arg[2] = {NULL, NULL};
29490 : return __Pyx_PyObject_FastCall(func, arg + 1, 0 | __Pyx_PY_VECTORCALL_ARGUMENTS_OFFSET);
29491 : }
29492 :
29493 : /* PyObjectGetMethod */
29494 : static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) {
29495 : PyObject *attr;
29496 : #if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP
29497 : __Pyx_TypeName type_name;
29498 : PyTypeObject *tp = Py_TYPE(obj);
29499 : PyObject *descr;
29500 : descrgetfunc f = NULL;
29501 : PyObject **dictptr, *dict;
29502 : int meth_found = 0;
29503 : assert (*method == NULL);
29504 : if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) {
29505 : attr = __Pyx_PyObject_GetAttrStr(obj, name);
29506 : goto try_unpack;
29507 : }
29508 : if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) {
29509 : return 0;
29510 : }
29511 : descr = _PyType_Lookup(tp, name);
29512 : if (likely(descr != NULL)) {
29513 : Py_INCREF(descr);
29514 : #if defined(Py_TPFLAGS_METHOD_DESCRIPTOR) && Py_TPFLAGS_METHOD_DESCRIPTOR
29515 : if (__Pyx_PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_METHOD_DESCRIPTOR))
29516 : #elif PY_MAJOR_VERSION >= 3
29517 : #ifdef __Pyx_CyFunction_USED
29518 : if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr)))
29519 : #else
29520 : if (likely(PyFunction_Check(descr) || __Pyx_IS_TYPE(descr, &PyMethodDescr_Type)))
29521 : #endif
29522 : #else
29523 : #ifdef __Pyx_CyFunction_USED
29524 : if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr)))
29525 : #else
29526 : if (likely(PyFunction_Check(descr)))
29527 : #endif
29528 : #endif
29529 : {
29530 : meth_found = 1;
29531 : } else {
29532 : f = Py_TYPE(descr)->tp_descr_get;
29533 : if (f != NULL && PyDescr_IsData(descr)) {
29534 : attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
29535 : Py_DECREF(descr);
29536 : goto try_unpack;
29537 : }
29538 : }
29539 : }
29540 : dictptr = _PyObject_GetDictPtr(obj);
29541 : if (dictptr != NULL && (dict = *dictptr) != NULL) {
29542 : Py_INCREF(dict);
29543 : attr = __Pyx_PyDict_GetItemStr(dict, name);
29544 : if (attr != NULL) {
29545 : Py_INCREF(attr);
29546 : Py_DECREF(dict);
29547 : Py_XDECREF(descr);
29548 : goto try_unpack;
29549 : }
29550 : Py_DECREF(dict);
29551 : }
29552 : if (meth_found) {
29553 : *method = descr;
29554 : return 1;
29555 : }
29556 : if (f != NULL) {
29557 : attr = f(descr, obj, (PyObject *)Py_TYPE(obj));
29558 : Py_DECREF(descr);
29559 : goto try_unpack;
29560 : }
29561 : if (likely(descr != NULL)) {
29562 : *method = descr;
29563 : return 0;
29564 : }
29565 : type_name = __Pyx_PyType_GetName(tp);
29566 : PyErr_Format(PyExc_AttributeError,
29567 : #if PY_MAJOR_VERSION >= 3
29568 : "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
29569 : type_name, name);
29570 : #else
29571 : "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
29572 : type_name, PyString_AS_STRING(name));
29573 : #endif
29574 : __Pyx_DECREF_TypeName(type_name);
29575 : return 0;
29576 : #else
29577 : attr = __Pyx_PyObject_GetAttrStr(obj, name);
29578 : goto try_unpack;
29579 : #endif
29580 : try_unpack:
29581 : #if CYTHON_UNPACK_METHODS
29582 : if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) {
29583 : PyObject *function = PyMethod_GET_FUNCTION(attr);
29584 : Py_INCREF(function);
29585 : Py_DECREF(attr);
29586 : *method = function;
29587 : return 1;
29588 : }
29589 : #endif
29590 : *method = attr;
29591 : return 0;
29592 : }
29593 :
29594 : /* PyObjectCallMethod0 */
29595 : static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) {
29596 : PyObject *method = NULL, *result = NULL;
29597 : int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method);
29598 : if (likely(is_method)) {
29599 : result = __Pyx_PyObject_CallOneArg(method, obj);
29600 : Py_DECREF(method);
29601 : return result;
29602 : }
29603 : if (unlikely(!method)) goto bad;
29604 : result = __Pyx_PyObject_CallNoArg(method);
29605 : Py_DECREF(method);
29606 : bad:
29607 : return result;
29608 : }
29609 :
29610 : /* UnpackItemEndCheck */
29611 0 : static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) {
29612 0 : if (unlikely(retval)) {
29613 0 : Py_DECREF(retval);
29614 0 : __Pyx_RaiseTooManyValuesError(expected);
29615 0 : return -1;
29616 : }
29617 0 : return __Pyx_IterFinish();
29618 : }
29619 :
29620 : /* UnpackTupleError */
29621 0 : static void __Pyx_UnpackTupleError(PyObject *t, Py_ssize_t index) {
29622 0 : if (t == Py_None) {
29623 0 : __Pyx_RaiseNoneNotIterableError();
29624 0 : } else if (PyTuple_GET_SIZE(t) < index) {
29625 0 : __Pyx_RaiseNeedMoreValuesError(PyTuple_GET_SIZE(t));
29626 : } else {
29627 0 : __Pyx_RaiseTooManyValuesError(index);
29628 : }
29629 0 : }
29630 :
29631 : /* UnpackTuple2 */
29632 0 : static CYTHON_INLINE int __Pyx_unpack_tuple2_exact(
29633 : PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2, int decref_tuple) {
29634 0 : PyObject *value1 = NULL, *value2 = NULL;
29635 : #if CYTHON_COMPILING_IN_PYPY
29636 : value1 = PySequence_ITEM(tuple, 0); if (unlikely(!value1)) goto bad;
29637 : value2 = PySequence_ITEM(tuple, 1); if (unlikely(!value2)) goto bad;
29638 : #else
29639 0 : value1 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(value1);
29640 0 : value2 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(value2);
29641 : #endif
29642 0 : if (decref_tuple) {
29643 0 : Py_DECREF(tuple);
29644 : }
29645 0 : *pvalue1 = value1;
29646 0 : *pvalue2 = value2;
29647 0 : return 0;
29648 : #if CYTHON_COMPILING_IN_PYPY
29649 : bad:
29650 : Py_XDECREF(value1);
29651 : Py_XDECREF(value2);
29652 : if (decref_tuple) { Py_XDECREF(tuple); }
29653 : return -1;
29654 : #endif
29655 : }
29656 0 : static int __Pyx_unpack_tuple2_generic(PyObject* tuple, PyObject** pvalue1, PyObject** pvalue2,
29657 : int has_known_size, int decref_tuple) {
29658 0 : Py_ssize_t index;
29659 0 : PyObject *value1 = NULL, *value2 = NULL, *iter = NULL;
29660 0 : iternextfunc iternext;
29661 0 : iter = PyObject_GetIter(tuple);
29662 0 : if (unlikely(!iter)) goto bad;
29663 0 : if (decref_tuple) { Py_DECREF(tuple); tuple = NULL; }
29664 0 : iternext = __Pyx_PyObject_GetIterNextFunc(iter);
29665 0 : value1 = iternext(iter); if (unlikely(!value1)) { index = 0; goto unpacking_failed; }
29666 0 : value2 = iternext(iter); if (unlikely(!value2)) { index = 1; goto unpacking_failed; }
29667 0 : if (!has_known_size && unlikely(__Pyx_IternextUnpackEndCheck(iternext(iter), 2))) goto bad;
29668 0 : Py_DECREF(iter);
29669 0 : *pvalue1 = value1;
29670 0 : *pvalue2 = value2;
29671 0 : return 0;
29672 0 : unpacking_failed:
29673 0 : if (!has_known_size && __Pyx_IterFinish() == 0)
29674 0 : __Pyx_RaiseNeedMoreValuesError(index);
29675 0 : bad:
29676 0 : Py_XDECREF(iter);
29677 0 : Py_XDECREF(value1);
29678 0 : Py_XDECREF(value2);
29679 0 : if (decref_tuple) { Py_XDECREF(tuple); }
29680 : return -1;
29681 : }
29682 :
29683 : /* dict_iter */
29684 : #if CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
29685 : #include <string.h>
29686 : #endif
29687 1 : static CYTHON_INLINE PyObject* __Pyx_dict_iterator(PyObject* iterable, int is_dict, PyObject* method_name,
29688 : Py_ssize_t* p_orig_length, int* p_source_is_dict) {
29689 1 : is_dict = is_dict || likely(PyDict_CheckExact(iterable));
29690 1 : *p_source_is_dict = is_dict;
29691 1 : if (is_dict) {
29692 : #if !CYTHON_COMPILING_IN_PYPY
29693 1 : *p_orig_length = PyDict_Size(iterable);
29694 1 : Py_INCREF(iterable);
29695 1 : return iterable;
29696 : #elif PY_MAJOR_VERSION >= 3
29697 : static PyObject *py_items = NULL, *py_keys = NULL, *py_values = NULL;
29698 : PyObject **pp = NULL;
29699 : if (method_name) {
29700 : const char *name = PyUnicode_AsUTF8(method_name);
29701 : if (strcmp(name, "iteritems") == 0) pp = &py_items;
29702 : else if (strcmp(name, "iterkeys") == 0) pp = &py_keys;
29703 : else if (strcmp(name, "itervalues") == 0) pp = &py_values;
29704 : if (pp) {
29705 : if (!*pp) {
29706 : *pp = PyUnicode_FromString(name + 4);
29707 : if (!*pp)
29708 : return NULL;
29709 : }
29710 : method_name = *pp;
29711 : }
29712 : }
29713 : #endif
29714 : }
29715 : *p_orig_length = 0;
29716 : if (method_name) {
29717 : PyObject* iter;
29718 : iterable = __Pyx_PyObject_CallMethod0(iterable, method_name);
29719 : if (!iterable)
29720 : return NULL;
29721 : #if !CYTHON_COMPILING_IN_PYPY
29722 : if (PyTuple_CheckExact(iterable) || PyList_CheckExact(iterable))
29723 : return iterable;
29724 : #endif
29725 : iter = PyObject_GetIter(iterable);
29726 : Py_DECREF(iterable);
29727 : return iter;
29728 : }
29729 : return PyObject_GetIter(iterable);
29730 : }
29731 8 : static CYTHON_INLINE int __Pyx_dict_iter_next(
29732 : PyObject* iter_obj, CYTHON_NCP_UNUSED Py_ssize_t orig_length, CYTHON_NCP_UNUSED Py_ssize_t* ppos,
29733 : PyObject** pkey, PyObject** pvalue, PyObject** pitem, int source_is_dict) {
29734 8 : PyObject* next_item;
29735 : #if !CYTHON_COMPILING_IN_PYPY
29736 8 : if (source_is_dict) {
29737 8 : PyObject *key, *value;
29738 8 : if (unlikely(orig_length != PyDict_Size(iter_obj))) {
29739 0 : PyErr_SetString(PyExc_RuntimeError, "dictionary changed size during iteration");
29740 0 : return -1;
29741 : }
29742 8 : if (unlikely(!PyDict_Next(iter_obj, ppos, &key, &value))) {
29743 : return 0;
29744 : }
29745 7 : if (pitem) {
29746 0 : PyObject* tuple = PyTuple_New(2);
29747 0 : if (unlikely(!tuple)) {
29748 : return -1;
29749 : }
29750 0 : Py_INCREF(key);
29751 0 : Py_INCREF(value);
29752 0 : PyTuple_SET_ITEM(tuple, 0, key);
29753 0 : PyTuple_SET_ITEM(tuple, 1, value);
29754 0 : *pitem = tuple;
29755 : } else {
29756 7 : if (pkey) {
29757 7 : Py_INCREF(key);
29758 7 : *pkey = key;
29759 : }
29760 7 : if (pvalue) {
29761 0 : Py_INCREF(value);
29762 0 : *pvalue = value;
29763 : }
29764 : }
29765 7 : return 1;
29766 0 : } else if (PyTuple_CheckExact(iter_obj)) {
29767 0 : Py_ssize_t pos = *ppos;
29768 0 : if (unlikely(pos >= PyTuple_GET_SIZE(iter_obj))) return 0;
29769 0 : *ppos = pos + 1;
29770 0 : next_item = PyTuple_GET_ITEM(iter_obj, pos);
29771 0 : Py_INCREF(next_item);
29772 0 : } else if (PyList_CheckExact(iter_obj)) {
29773 0 : Py_ssize_t pos = *ppos;
29774 0 : if (unlikely(pos >= PyList_GET_SIZE(iter_obj))) return 0;
29775 0 : *ppos = pos + 1;
29776 0 : next_item = PyList_GET_ITEM(iter_obj, pos);
29777 0 : Py_INCREF(next_item);
29778 : } else
29779 : #endif
29780 : {
29781 0 : next_item = PyIter_Next(iter_obj);
29782 0 : if (unlikely(!next_item)) {
29783 0 : return __Pyx_IterFinish();
29784 : }
29785 : }
29786 0 : if (pitem) {
29787 0 : *pitem = next_item;
29788 0 : } else if (pkey && pvalue) {
29789 0 : if (__Pyx_unpack_tuple2(next_item, pkey, pvalue, source_is_dict, source_is_dict, 1))
29790 0 : return -1;
29791 0 : } else if (pkey) {
29792 0 : *pkey = next_item;
29793 : } else {
29794 0 : *pvalue = next_item;
29795 : }
29796 : return 1;
29797 : }
29798 :
29799 : /* UnpackUnboundCMethod */
29800 0 : static PyObject *__Pyx_SelflessCall(PyObject *method, PyObject *args, PyObject *kwargs) {
29801 0 : PyObject *result;
29802 0 : PyObject *selfless_args = PyTuple_GetSlice(args, 1, PyTuple_Size(args));
29803 0 : if (unlikely(!selfless_args)) return NULL;
29804 0 : result = PyObject_Call(method, selfless_args, kwargs);
29805 0 : Py_DECREF(selfless_args);
29806 : return result;
29807 : }
29808 : static PyMethodDef __Pyx_UnboundCMethod_Def = {
29809 : "CythonUnboundCMethod",
29810 : __PYX_REINTERPRET_FUNCION(PyCFunction, __Pyx_SelflessCall),
29811 : METH_VARARGS | METH_KEYWORDS,
29812 : NULL
29813 : };
29814 0 : static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) {
29815 0 : PyObject *method;
29816 0 : method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name);
29817 0 : if (unlikely(!method))
29818 : return -1;
29819 0 : target->method = method;
29820 : #if CYTHON_COMPILING_IN_CPYTHON
29821 : #if PY_MAJOR_VERSION >= 3
29822 0 : if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type)))
29823 : #else
29824 : if (likely(!__Pyx_CyOrPyCFunction_Check(method)))
29825 : #endif
29826 : {
29827 0 : PyMethodDescrObject *descr = (PyMethodDescrObject*) method;
29828 0 : target->func = descr->d_method->ml_meth;
29829 0 : target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS);
29830 : } else
29831 : #endif
29832 : #if CYTHON_COMPILING_IN_PYPY
29833 : #else
29834 0 : if (PyCFunction_Check(method))
29835 : #endif
29836 : {
29837 0 : PyObject *self;
29838 0 : int self_found;
29839 : #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
29840 : self = PyObject_GetAttrString(method, "__self__");
29841 : if (!self) {
29842 : PyErr_Clear();
29843 : }
29844 : #else
29845 0 : self = PyCFunction_GET_SELF(method);
29846 : #endif
29847 0 : self_found = (self && self != Py_None);
29848 : #if CYTHON_COMPILING_IN_LIMITED_API || CYTHON_COMPILING_IN_PYPY
29849 : Py_XDECREF(self);
29850 : #endif
29851 0 : if (self_found) {
29852 0 : PyObject *unbound_method = PyCFunction_New(&__Pyx_UnboundCMethod_Def, method);
29853 0 : if (unlikely(!unbound_method)) return -1;
29854 0 : Py_DECREF(method);
29855 0 : target->method = unbound_method;
29856 : }
29857 : }
29858 : return 0;
29859 : }
29860 :
29861 : /* CallUnboundCMethod0 */
29862 0 : static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) {
29863 0 : PyObject *args, *result = NULL;
29864 0 : if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
29865 : #if CYTHON_ASSUME_SAFE_MACROS
29866 0 : args = PyTuple_New(1);
29867 0 : if (unlikely(!args)) goto bad;
29868 0 : Py_INCREF(self);
29869 0 : PyTuple_SET_ITEM(args, 0, self);
29870 : #else
29871 : args = PyTuple_Pack(1, self);
29872 : if (unlikely(!args)) goto bad;
29873 : #endif
29874 0 : result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
29875 0 : Py_DECREF(args);
29876 : bad:
29877 : return result;
29878 : }
29879 :
29880 : /* py_dict_values */
29881 0 : static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
29882 0 : if (PY_MAJOR_VERSION >= 3)
29883 0 : return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
29884 : else
29885 : return PyDict_Values(d);
29886 : }
29887 :
29888 : /* CallUnboundCMethod1 */
29889 : #if CYTHON_COMPILING_IN_CPYTHON
29890 : static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) {
29891 : if (likely(cfunc->func)) {
29892 : int flag = cfunc->flag;
29893 : if (flag == METH_O) {
29894 : return (*(cfunc->func))(self, arg);
29895 : } else if ((PY_VERSION_HEX >= 0x030600B1) && flag == METH_FASTCALL) {
29896 : #if PY_VERSION_HEX >= 0x030700A0
29897 : return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1);
29898 : #else
29899 : return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
29900 : #endif
29901 : } else if ((PY_VERSION_HEX >= 0x030700A0) && flag == (METH_FASTCALL | METH_KEYWORDS)) {
29902 : return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL);
29903 : }
29904 : }
29905 : return __Pyx__CallUnboundCMethod1(cfunc, self, arg);
29906 : }
29907 : #endif
29908 : static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){
29909 : PyObject *args, *result = NULL;
29910 : if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
29911 : #if CYTHON_COMPILING_IN_CPYTHON
29912 : if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
29913 : args = PyTuple_New(1);
29914 : if (unlikely(!args)) goto bad;
29915 : Py_INCREF(arg);
29916 : PyTuple_SET_ITEM(args, 0, arg);
29917 : if (cfunc->flag & METH_KEYWORDS)
29918 : result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
29919 : else
29920 : result = (*cfunc->func)(self, args);
29921 : } else {
29922 : args = PyTuple_New(2);
29923 : if (unlikely(!args)) goto bad;
29924 : Py_INCREF(self);
29925 : PyTuple_SET_ITEM(args, 0, self);
29926 : Py_INCREF(arg);
29927 : PyTuple_SET_ITEM(args, 1, arg);
29928 : result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
29929 : }
29930 : #else
29931 : args = PyTuple_Pack(2, self, arg);
29932 : if (unlikely(!args)) goto bad;
29933 : result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
29934 : #endif
29935 : bad:
29936 : Py_XDECREF(args);
29937 : return result;
29938 : }
29939 :
29940 : /* CallUnboundCMethod2 */
29941 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1
29942 : static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) {
29943 : if (likely(cfunc->func)) {
29944 : PyObject *args[2] = {arg1, arg2};
29945 : if (cfunc->flag == METH_FASTCALL) {
29946 : #if PY_VERSION_HEX >= 0x030700A0
29947 : return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2);
29948 : #else
29949 : return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
29950 : #endif
29951 : }
29952 : #if PY_VERSION_HEX >= 0x030700A0
29953 : if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS))
29954 : return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL);
29955 : #endif
29956 : }
29957 : return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2);
29958 : }
29959 : #endif
29960 : static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){
29961 : PyObject *args, *result = NULL;
29962 : if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL;
29963 : #if CYTHON_COMPILING_IN_CPYTHON
29964 : if (cfunc->func && (cfunc->flag & METH_VARARGS)) {
29965 : args = PyTuple_New(2);
29966 : if (unlikely(!args)) goto bad;
29967 : Py_INCREF(arg1);
29968 : PyTuple_SET_ITEM(args, 0, arg1);
29969 : Py_INCREF(arg2);
29970 : PyTuple_SET_ITEM(args, 1, arg2);
29971 : if (cfunc->flag & METH_KEYWORDS)
29972 : result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL);
29973 : else
29974 : result = (*cfunc->func)(self, args);
29975 : } else {
29976 : args = PyTuple_New(3);
29977 : if (unlikely(!args)) goto bad;
29978 : Py_INCREF(self);
29979 : PyTuple_SET_ITEM(args, 0, self);
29980 : Py_INCREF(arg1);
29981 : PyTuple_SET_ITEM(args, 1, arg1);
29982 : Py_INCREF(arg2);
29983 : PyTuple_SET_ITEM(args, 2, arg2);
29984 : result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
29985 : }
29986 : #else
29987 : args = PyTuple_Pack(3, self, arg1, arg2);
29988 : if (unlikely(!args)) goto bad;
29989 : result = __Pyx_PyObject_Call(cfunc->method, args, NULL);
29990 : #endif
29991 : bad:
29992 : Py_XDECREF(args);
29993 : return result;
29994 : }
29995 :
29996 : /* dict_getitem_default */
29997 134 : static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) {
29998 134 : PyObject* value;
29999 : #if PY_MAJOR_VERSION >= 3 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07020000)
30000 134 : value = PyDict_GetItemWithError(d, key);
30001 134 : if (unlikely(!value)) {
30002 0 : if (unlikely(PyErr_Occurred()))
30003 : return NULL;
30004 : value = default_value;
30005 : }
30006 134 : Py_INCREF(value);
30007 : if ((1));
30008 : #else
30009 : if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) {
30010 : value = PyDict_GetItem(d, key);
30011 : if (unlikely(!value)) {
30012 : value = default_value;
30013 : }
30014 : Py_INCREF(value);
30015 : }
30016 : #endif
30017 : else {
30018 : if (default_value == Py_None)
30019 : value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key);
30020 : else
30021 : value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value);
30022 : }
30023 : return value;
30024 : }
30025 :
30026 : /* PyObject_GenericGetAttrNoDict */
30027 : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
30028 : static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) {
30029 : __Pyx_TypeName type_name = __Pyx_PyType_GetName(tp);
30030 : PyErr_Format(PyExc_AttributeError,
30031 : #if PY_MAJOR_VERSION >= 3
30032 : "'" __Pyx_FMT_TYPENAME "' object has no attribute '%U'",
30033 : type_name, attr_name);
30034 : #else
30035 : "'" __Pyx_FMT_TYPENAME "' object has no attribute '%.400s'",
30036 : type_name, PyString_AS_STRING(attr_name));
30037 : #endif
30038 : __Pyx_DECREF_TypeName(type_name);
30039 : return NULL;
30040 : }
30041 : static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) {
30042 : PyObject *descr;
30043 : PyTypeObject *tp = Py_TYPE(obj);
30044 : if (unlikely(!PyString_Check(attr_name))) {
30045 : return PyObject_GenericGetAttr(obj, attr_name);
30046 : }
30047 : assert(!tp->tp_dictoffset);
30048 : descr = _PyType_Lookup(tp, attr_name);
30049 : if (unlikely(!descr)) {
30050 : return __Pyx_RaiseGenericGetAttributeError(tp, attr_name);
30051 : }
30052 : Py_INCREF(descr);
30053 : #if PY_MAJOR_VERSION < 3
30054 : if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS)))
30055 : #endif
30056 : {
30057 : descrgetfunc f = Py_TYPE(descr)->tp_descr_get;
30058 : if (unlikely(f)) {
30059 : PyObject *res = f(descr, obj, (PyObject *)tp);
30060 : Py_DECREF(descr);
30061 : return res;
30062 : }
30063 : }
30064 : return descr;
30065 : }
30066 : #endif
30067 :
30068 : /* PyObject_GenericGetAttr */
30069 : #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000
30070 : static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) {
30071 : if (unlikely(Py_TYPE(obj)->tp_dictoffset)) {
30072 : return PyObject_GenericGetAttr(obj, attr_name);
30073 : }
30074 : return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name);
30075 : }
30076 : #endif
30077 :
30078 : /* FixUpExtensionType */
30079 : #if CYTHON_USE_TYPE_SPECS
30080 : static int __Pyx_fix_up_extension_type_from_spec(PyType_Spec *spec, PyTypeObject *type) {
30081 : #if PY_VERSION_HEX > 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
30082 : CYTHON_UNUSED_VAR(spec);
30083 : CYTHON_UNUSED_VAR(type);
30084 : #else
30085 : const PyType_Slot *slot = spec->slots;
30086 : while (slot && slot->slot && slot->slot != Py_tp_members)
30087 : slot++;
30088 : if (slot && slot->slot == Py_tp_members) {
30089 : int changed = 0;
30090 : #if !(PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON)
30091 : const
30092 : #endif
30093 : PyMemberDef *memb = (PyMemberDef*) slot->pfunc;
30094 : while (memb && memb->name) {
30095 : if (memb->name[0] == '_' && memb->name[1] == '_') {
30096 : #if PY_VERSION_HEX < 0x030900b1
30097 : if (strcmp(memb->name, "__weaklistoffset__") == 0) {
30098 : assert(memb->type == T_PYSSIZET);
30099 : assert(memb->flags == READONLY);
30100 : type->tp_weaklistoffset = memb->offset;
30101 : changed = 1;
30102 : }
30103 : else if (strcmp(memb->name, "__dictoffset__") == 0) {
30104 : assert(memb->type == T_PYSSIZET);
30105 : assert(memb->flags == READONLY);
30106 : type->tp_dictoffset = memb->offset;
30107 : changed = 1;
30108 : }
30109 : #if CYTHON_METH_FASTCALL
30110 : else if (strcmp(memb->name, "__vectorcalloffset__") == 0) {
30111 : assert(memb->type == T_PYSSIZET);
30112 : assert(memb->flags == READONLY);
30113 : #if PY_VERSION_HEX >= 0x030800b4
30114 : type->tp_vectorcall_offset = memb->offset;
30115 : #else
30116 : type->tp_print = (printfunc) memb->offset;
30117 : #endif
30118 : changed = 1;
30119 : }
30120 : #endif
30121 : #else
30122 : if ((0));
30123 : #endif
30124 : #if PY_VERSION_HEX <= 0x030900b1 && CYTHON_COMPILING_IN_CPYTHON
30125 : else if (strcmp(memb->name, "__module__") == 0) {
30126 : PyObject *descr;
30127 : assert(memb->type == T_OBJECT);
30128 : assert(memb->flags == 0 || memb->flags == READONLY);
30129 : descr = PyDescr_NewMember(type, memb);
30130 : if (unlikely(!descr))
30131 : return -1;
30132 : if (unlikely(PyDict_SetItem(type->tp_dict, PyDescr_NAME(descr), descr) < 0)) {
30133 : Py_DECREF(descr);
30134 : return -1;
30135 : }
30136 : Py_DECREF(descr);
30137 : changed = 1;
30138 : }
30139 : #endif
30140 : }
30141 : memb++;
30142 : }
30143 : if (changed)
30144 : PyType_Modified(type);
30145 : }
30146 : #endif
30147 : return 0;
30148 : }
30149 : #endif
30150 :
30151 : /* ValidateBasesTuple */
30152 : #if CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API || CYTHON_USE_TYPE_SPECS
30153 0 : static int __Pyx_validate_bases_tuple(const char *type_name, Py_ssize_t dictoffset, PyObject *bases) {
30154 0 : Py_ssize_t i, n;
30155 : #if CYTHON_ASSUME_SAFE_MACROS
30156 0 : n = PyTuple_GET_SIZE(bases);
30157 : #else
30158 : n = PyTuple_Size(bases);
30159 : if (n < 0) return -1;
30160 : #endif
30161 0 : for (i = 1; i < n; i++)
30162 : {
30163 : #if CYTHON_AVOID_BORROWED_REFS
30164 : PyObject *b0 = PySequence_GetItem(bases, i);
30165 : if (!b0) return -1;
30166 : #elif CYTHON_ASSUME_SAFE_MACROS
30167 0 : PyObject *b0 = PyTuple_GET_ITEM(bases, i);
30168 : #else
30169 : PyObject *b0 = PyTuple_GetItem(bases, i);
30170 : if (!b0) return -1;
30171 : #endif
30172 0 : PyTypeObject *b;
30173 : #if PY_MAJOR_VERSION < 3
30174 : if (PyClass_Check(b0))
30175 : {
30176 : PyErr_Format(PyExc_TypeError, "base class '%.200s' is an old-style class",
30177 : PyString_AS_STRING(((PyClassObject*)b0)->cl_name));
30178 : #if CYTHON_AVOID_BORROWED_REFS
30179 : Py_DECREF(b0);
30180 : #endif
30181 : return -1;
30182 : }
30183 : #endif
30184 0 : b = (PyTypeObject*) b0;
30185 0 : if (!__Pyx_PyType_HasFeature(b, Py_TPFLAGS_HEAPTYPE))
30186 : {
30187 0 : __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
30188 0 : PyErr_Format(PyExc_TypeError,
30189 : "base class '" __Pyx_FMT_TYPENAME "' is not a heap type", b_name);
30190 0 : __Pyx_DECREF_TypeName(b_name);
30191 : #if CYTHON_AVOID_BORROWED_REFS
30192 : Py_DECREF(b0);
30193 : #endif
30194 0 : return -1;
30195 : }
30196 0 : if (dictoffset == 0)
30197 : {
30198 0 : Py_ssize_t b_dictoffset = 0;
30199 : #if CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY
30200 0 : b_dictoffset = b->tp_dictoffset;
30201 : #else
30202 : PyObject *py_b_dictoffset = PyObject_GetAttrString((PyObject*)b, "__dictoffset__");
30203 : if (!py_b_dictoffset) goto dictoffset_return;
30204 : b_dictoffset = PyLong_AsSsize_t(py_b_dictoffset);
30205 : Py_DECREF(py_b_dictoffset);
30206 : if (b_dictoffset == -1 && PyErr_Occurred()) goto dictoffset_return;
30207 : #endif
30208 0 : if (b_dictoffset) {
30209 : {
30210 0 : __Pyx_TypeName b_name = __Pyx_PyType_GetName(b);
30211 0 : PyErr_Format(PyExc_TypeError,
30212 : "extension type '%.200s' has no __dict__ slot, "
30213 : "but base type '" __Pyx_FMT_TYPENAME "' has: "
30214 : "either add 'cdef dict __dict__' to the extension type "
30215 : "or add '__slots__ = [...]' to the base type",
30216 : type_name, b_name);
30217 0 : __Pyx_DECREF_TypeName(b_name);
30218 : }
30219 : #if !(CYTHON_USE_TYPE_SLOTS || CYTHON_COMPILING_IN_PYPY)
30220 : dictoffset_return:
30221 : #endif
30222 : #if CYTHON_AVOID_BORROWED_REFS
30223 : Py_DECREF(b0);
30224 : #endif
30225 0 : return -1;
30226 : }
30227 : }
30228 : #if CYTHON_AVOID_BORROWED_REFS
30229 : Py_DECREF(b0);
30230 : #endif
30231 : }
30232 : return 0;
30233 : }
30234 : #endif
30235 :
30236 : /* PyType_Ready */
30237 4 : static int __Pyx_PyType_Ready(PyTypeObject *t) {
30238 : #if CYTHON_USE_TYPE_SPECS || !(CYTHON_COMPILING_IN_CPYTHON || CYTHON_COMPILING_IN_LIMITED_API) || defined(PYSTON_MAJOR_VERSION)
30239 : (void)__Pyx_PyObject_CallMethod0;
30240 : #if CYTHON_USE_TYPE_SPECS
30241 : (void)__Pyx_validate_bases_tuple;
30242 : #endif
30243 : return PyType_Ready(t);
30244 : #else
30245 4 : int r;
30246 4 : PyObject *bases = __Pyx_PyType_GetSlot(t, tp_bases, PyObject*);
30247 4 : if (bases && unlikely(__Pyx_validate_bases_tuple(t->tp_name, t->tp_dictoffset, bases) == -1))
30248 : return -1;
30249 : #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
30250 : {
30251 4 : int gc_was_enabled;
30252 : #if PY_VERSION_HEX >= 0x030A00b1
30253 4 : gc_was_enabled = PyGC_Disable();
30254 4 : (void)__Pyx_PyObject_CallMethod0;
30255 : #else
30256 : PyObject *ret, *py_status;
30257 : PyObject *gc = NULL;
30258 : #if PY_VERSION_HEX >= 0x030700a1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM+0 >= 0x07030400)
30259 : gc = PyImport_GetModule(__pyx_kp_u_gc);
30260 : #endif
30261 : if (unlikely(!gc)) gc = PyImport_Import(__pyx_kp_u_gc);
30262 : if (unlikely(!gc)) return -1;
30263 : py_status = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_isenabled);
30264 : if (unlikely(!py_status)) {
30265 : Py_DECREF(gc);
30266 : return -1;
30267 : }
30268 : gc_was_enabled = __Pyx_PyObject_IsTrue(py_status);
30269 : Py_DECREF(py_status);
30270 : if (gc_was_enabled > 0) {
30271 : ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_disable);
30272 : if (unlikely(!ret)) {
30273 : Py_DECREF(gc);
30274 : return -1;
30275 : }
30276 : Py_DECREF(ret);
30277 : } else if (unlikely(gc_was_enabled == -1)) {
30278 : Py_DECREF(gc);
30279 : return -1;
30280 : }
30281 : #endif
30282 4 : t->tp_flags |= Py_TPFLAGS_HEAPTYPE;
30283 : #if PY_VERSION_HEX >= 0x030A0000
30284 4 : t->tp_flags |= Py_TPFLAGS_IMMUTABLETYPE;
30285 : #endif
30286 : #else
30287 : (void)__Pyx_PyObject_CallMethod0;
30288 : #endif
30289 4 : r = PyType_Ready(t);
30290 : #if PY_VERSION_HEX >= 0x03050000 && !defined(PYSTON_MAJOR_VERSION)
30291 4 : t->tp_flags &= ~Py_TPFLAGS_HEAPTYPE;
30292 : #if PY_VERSION_HEX >= 0x030A00b1
30293 4 : if (gc_was_enabled)
30294 4 : PyGC_Enable();
30295 : #else
30296 : if (gc_was_enabled) {
30297 : PyObject *tp, *v, *tb;
30298 : PyErr_Fetch(&tp, &v, &tb);
30299 : ret = __Pyx_PyObject_CallMethod0(gc, __pyx_kp_u_enable);
30300 : if (likely(ret || r == -1)) {
30301 : Py_XDECREF(ret);
30302 : PyErr_Restore(tp, v, tb);
30303 : } else {
30304 : Py_XDECREF(tp);
30305 : Py_XDECREF(v);
30306 : Py_XDECREF(tb);
30307 : r = -1;
30308 : }
30309 : }
30310 : Py_DECREF(gc);
30311 : #endif
30312 : }
30313 : #endif
30314 : return r;
30315 : #endif
30316 : }
30317 :
30318 : /* SetVTable */
30319 3 : static int __Pyx_SetVtable(PyTypeObject *type, void *vtable) {
30320 3 : PyObject *ob = PyCapsule_New(vtable, 0, 0);
30321 3 : if (unlikely(!ob))
30322 0 : goto bad;
30323 : #if CYTHON_COMPILING_IN_LIMITED_API
30324 : if (unlikely(PyObject_SetAttr((PyObject *) type, __pyx_n_s_pyx_vtable, ob) < 0))
30325 : #else
30326 3 : if (unlikely(PyDict_SetItem(type->tp_dict, __pyx_n_s_pyx_vtable, ob) < 0))
30327 : #endif
30328 0 : goto bad;
30329 3 : Py_DECREF(ob);
30330 : return 0;
30331 0 : bad:
30332 0 : Py_XDECREF(ob);
30333 0 : return -1;
30334 : }
30335 :
30336 : /* GetVTable */
30337 0 : static void* __Pyx_GetVtable(PyTypeObject *type) {
30338 0 : void* ptr;
30339 : #if CYTHON_COMPILING_IN_LIMITED_API
30340 : PyObject *ob = PyObject_GetAttr((PyObject *)type, __pyx_n_s_pyx_vtable);
30341 : #else
30342 0 : PyObject *ob = PyObject_GetItem(type->tp_dict, __pyx_n_s_pyx_vtable);
30343 : #endif
30344 0 : if (!ob)
30345 0 : goto bad;
30346 0 : ptr = PyCapsule_GetPointer(ob, 0);
30347 0 : if (!ptr && !PyErr_Occurred())
30348 0 : PyErr_SetString(PyExc_RuntimeError, "invalid vtable found for imported type");
30349 0 : Py_DECREF(ob);
30350 : return ptr;
30351 0 : bad:
30352 0 : Py_XDECREF(ob);
30353 0 : return NULL;
30354 : }
30355 :
30356 : /* MergeVTables */
30357 : #if !CYTHON_COMPILING_IN_LIMITED_API
30358 3 : static int __Pyx_MergeVtables(PyTypeObject *type) {
30359 3 : int i;
30360 3 : void** base_vtables;
30361 3 : __Pyx_TypeName tp_base_name;
30362 3 : __Pyx_TypeName base_name;
30363 3 : void* unknown = (void*)-1;
30364 3 : PyObject* bases = type->tp_bases;
30365 3 : int base_depth = 0;
30366 : {
30367 3 : PyTypeObject* base = type->tp_base;
30368 7 : while (base) {
30369 4 : base_depth += 1;
30370 4 : base = base->tp_base;
30371 : }
30372 : }
30373 3 : base_vtables = (void**) malloc(sizeof(void*) * (size_t)(base_depth + 1));
30374 3 : base_vtables[0] = unknown;
30375 3 : for (i = 1; i < PyTuple_GET_SIZE(bases); i++) {
30376 0 : void* base_vtable = __Pyx_GetVtable(((PyTypeObject*)PyTuple_GET_ITEM(bases, i)));
30377 0 : if (base_vtable != NULL) {
30378 0 : int j;
30379 0 : PyTypeObject* base = type->tp_base;
30380 0 : for (j = 0; j < base_depth; j++) {
30381 0 : if (base_vtables[j] == unknown) {
30382 0 : base_vtables[j] = __Pyx_GetVtable(base);
30383 0 : base_vtables[j + 1] = unknown;
30384 : }
30385 0 : if (base_vtables[j] == base_vtable) {
30386 : break;
30387 0 : } else if (base_vtables[j] == NULL) {
30388 0 : goto bad;
30389 : }
30390 0 : base = base->tp_base;
30391 : }
30392 : }
30393 : }
30394 3 : PyErr_Clear();
30395 3 : free(base_vtables);
30396 3 : return 0;
30397 0 : bad:
30398 0 : tp_base_name = __Pyx_PyType_GetName(type->tp_base);
30399 0 : base_name = __Pyx_PyType_GetName((PyTypeObject*)PyTuple_GET_ITEM(bases, i));
30400 0 : PyErr_Format(PyExc_TypeError,
30401 : "multiple bases have vtable conflict: '" __Pyx_FMT_TYPENAME "' and '" __Pyx_FMT_TYPENAME "'", tp_base_name, base_name);
30402 0 : __Pyx_DECREF_TypeName(tp_base_name);
30403 0 : __Pyx_DECREF_TypeName(base_name);
30404 0 : free(base_vtables);
30405 0 : return -1;
30406 : }
30407 : #endif
30408 :
30409 : /* SetupReduce */
30410 : #if !CYTHON_COMPILING_IN_LIMITED_API
30411 2 : static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) {
30412 2 : int ret;
30413 2 : PyObject *name_attr;
30414 2 : name_attr = __Pyx_PyObject_GetAttrStrNoError(meth, __pyx_n_s_name_2);
30415 2 : if (likely(name_attr)) {
30416 2 : ret = PyObject_RichCompareBool(name_attr, name, Py_EQ);
30417 : } else {
30418 : ret = -1;
30419 : }
30420 2 : if (unlikely(ret < 0)) {
30421 0 : PyErr_Clear();
30422 0 : ret = 0;
30423 : }
30424 2 : Py_XDECREF(name_attr);
30425 2 : return ret;
30426 : }
30427 4 : static int __Pyx_setup_reduce(PyObject* type_obj) {
30428 4 : int ret = 0;
30429 4 : PyObject *object_reduce = NULL;
30430 4 : PyObject *object_getstate = NULL;
30431 4 : PyObject *object_reduce_ex = NULL;
30432 4 : PyObject *reduce = NULL;
30433 4 : PyObject *reduce_ex = NULL;
30434 4 : PyObject *reduce_cython = NULL;
30435 4 : PyObject *setstate = NULL;
30436 4 : PyObject *setstate_cython = NULL;
30437 4 : PyObject *getstate = NULL;
30438 : #if CYTHON_USE_PYTYPE_LOOKUP
30439 4 : getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate);
30440 : #else
30441 : getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate);
30442 : if (!getstate && PyErr_Occurred()) {
30443 : goto __PYX_BAD;
30444 : }
30445 : #endif
30446 4 : if (getstate) {
30447 : #if CYTHON_USE_PYTYPE_LOOKUP
30448 4 : object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate);
30449 : #else
30450 : object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate);
30451 : if (!object_getstate && PyErr_Occurred()) {
30452 : goto __PYX_BAD;
30453 : }
30454 : #endif
30455 4 : if (object_getstate != getstate) {
30456 0 : goto __PYX_GOOD;
30457 : }
30458 : }
30459 : #if CYTHON_USE_PYTYPE_LOOKUP
30460 4 : object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
30461 : #else
30462 : object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD;
30463 : #endif
30464 4 : reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD;
30465 4 : if (reduce_ex == object_reduce_ex) {
30466 : #if CYTHON_USE_PYTYPE_LOOKUP
30467 4 : object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
30468 : #else
30469 : object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD;
30470 : #endif
30471 4 : reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD;
30472 4 : if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) {
30473 4 : reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython);
30474 4 : if (likely(reduce_cython)) {
30475 4 : ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
30476 4 : ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
30477 0 : } else if (reduce == object_reduce || PyErr_Occurred()) {
30478 0 : goto __PYX_BAD;
30479 : }
30480 4 : setstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate);
30481 4 : if (!setstate) PyErr_Clear();
30482 4 : if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) {
30483 4 : setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython);
30484 4 : if (likely(setstate_cython)) {
30485 4 : ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
30486 4 : ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD;
30487 0 : } else if (!setstate || PyErr_Occurred()) {
30488 0 : goto __PYX_BAD;
30489 : }
30490 : }
30491 4 : PyType_Modified((PyTypeObject*)type_obj);
30492 : }
30493 : }
30494 4 : goto __PYX_GOOD;
30495 0 : __PYX_BAD:
30496 0 : if (!PyErr_Occurred()) {
30497 0 : __Pyx_TypeName type_obj_name =
30498 : __Pyx_PyType_GetName((PyTypeObject*)type_obj);
30499 0 : PyErr_Format(PyExc_RuntimeError,
30500 : "Unable to initialize pickling for " __Pyx_FMT_TYPENAME, type_obj_name);
30501 : __Pyx_DECREF_TypeName(type_obj_name);
30502 : }
30503 : ret = -1;
30504 4 : __PYX_GOOD:
30505 : #if !CYTHON_USE_PYTYPE_LOOKUP
30506 : Py_XDECREF(object_reduce);
30507 : Py_XDECREF(object_reduce_ex);
30508 : Py_XDECREF(object_getstate);
30509 : Py_XDECREF(getstate);
30510 : #endif
30511 4 : Py_XDECREF(reduce);
30512 4 : Py_XDECREF(reduce_ex);
30513 4 : Py_XDECREF(reduce_cython);
30514 4 : Py_XDECREF(setstate);
30515 4 : Py_XDECREF(setstate_cython);
30516 4 : return ret;
30517 : }
30518 : #endif
30519 :
30520 : /* TypeImport */
30521 : #ifndef __PYX_HAVE_RT_ImportType_3_0_11
30522 : #define __PYX_HAVE_RT_ImportType_3_0_11
30523 16 : static PyTypeObject *__Pyx_ImportType_3_0_11(PyObject *module, const char *module_name, const char *class_name,
30524 : size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_3_0_11 check_size)
30525 : {
30526 16 : PyObject *result = 0;
30527 16 : char warning[200];
30528 16 : Py_ssize_t basicsize;
30529 16 : Py_ssize_t itemsize;
30530 : #if CYTHON_COMPILING_IN_LIMITED_API
30531 : PyObject *py_basicsize;
30532 : PyObject *py_itemsize;
30533 : #endif
30534 16 : result = PyObject_GetAttrString(module, class_name);
30535 16 : if (!result)
30536 0 : goto bad;
30537 16 : if (!PyType_Check(result)) {
30538 0 : PyErr_Format(PyExc_TypeError,
30539 : "%.200s.%.200s is not a type object",
30540 : module_name, class_name);
30541 0 : goto bad;
30542 : }
30543 : #if !CYTHON_COMPILING_IN_LIMITED_API
30544 16 : basicsize = ((PyTypeObject *)result)->tp_basicsize;
30545 16 : itemsize = ((PyTypeObject *)result)->tp_itemsize;
30546 : #else
30547 : py_basicsize = PyObject_GetAttrString(result, "__basicsize__");
30548 : if (!py_basicsize)
30549 : goto bad;
30550 : basicsize = PyLong_AsSsize_t(py_basicsize);
30551 : Py_DECREF(py_basicsize);
30552 : py_basicsize = 0;
30553 : if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred())
30554 : goto bad;
30555 : py_itemsize = PyObject_GetAttrString(result, "__itemsize__");
30556 : if (!py_itemsize)
30557 : goto bad;
30558 : itemsize = PyLong_AsSsize_t(py_itemsize);
30559 : Py_DECREF(py_itemsize);
30560 : py_itemsize = 0;
30561 : if (itemsize == (Py_ssize_t)-1 && PyErr_Occurred())
30562 : goto bad;
30563 : #endif
30564 16 : if (itemsize) {
30565 1 : if (size % alignment) {
30566 0 : alignment = size % alignment;
30567 : }
30568 1 : if (itemsize < (Py_ssize_t)alignment)
30569 : itemsize = (Py_ssize_t)alignment;
30570 : }
30571 16 : if ((size_t)(basicsize + itemsize) < size) {
30572 0 : PyErr_Format(PyExc_ValueError,
30573 : "%.200s.%.200s size changed, may indicate binary incompatibility. "
30574 : "Expected %zd from C header, got %zd from PyObject",
30575 : module_name, class_name, size, basicsize+itemsize);
30576 0 : goto bad;
30577 : }
30578 16 : if (check_size == __Pyx_ImportType_CheckSize_Error_3_0_11 &&
30579 0 : ((size_t)basicsize > size || (size_t)(basicsize + itemsize) < size)) {
30580 0 : PyErr_Format(PyExc_ValueError,
30581 : "%.200s.%.200s size changed, may indicate binary incompatibility. "
30582 : "Expected %zd from C header, got %zd-%zd from PyObject",
30583 : module_name, class_name, size, basicsize, basicsize+itemsize);
30584 0 : goto bad;
30585 : }
30586 16 : else if (check_size == __Pyx_ImportType_CheckSize_Warn_3_0_11 && (size_t)basicsize > size) {
30587 0 : PyOS_snprintf(warning, sizeof(warning),
30588 : "%s.%s size changed, may indicate binary incompatibility. "
30589 : "Expected %zd from C header, got %zd from PyObject",
30590 : module_name, class_name, size, basicsize);
30591 0 : if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad;
30592 : }
30593 : return (PyTypeObject *)result;
30594 0 : bad:
30595 0 : Py_XDECREF(result);
30596 0 : return NULL;
30597 : }
30598 : #endif
30599 :
30600 : /* FetchSharedCythonModule */
30601 2 : static PyObject *__Pyx_FetchSharedCythonABIModule(void) {
30602 2 : return __Pyx_PyImport_AddModuleRef((char*) __PYX_ABI_MODULE_NAME);
30603 : }
30604 :
30605 : /* FetchCommonType */
30606 2 : static int __Pyx_VerifyCachedType(PyObject *cached_type,
30607 : const char *name,
30608 : Py_ssize_t basicsize,
30609 : Py_ssize_t expected_basicsize) {
30610 2 : if (!PyType_Check(cached_type)) {
30611 0 : PyErr_Format(PyExc_TypeError,
30612 : "Shared Cython type %.200s is not a type object", name);
30613 0 : return -1;
30614 : }
30615 2 : if (basicsize != expected_basicsize) {
30616 0 : PyErr_Format(PyExc_TypeError,
30617 : "Shared Cython type %.200s has the wrong size, try recompiling",
30618 : name);
30619 0 : return -1;
30620 : }
30621 : return 0;
30622 : }
30623 : #if !CYTHON_USE_TYPE_SPECS
30624 2 : static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) {
30625 2 : PyObject* abi_module;
30626 2 : const char* object_name;
30627 2 : PyTypeObject *cached_type = NULL;
30628 2 : abi_module = __Pyx_FetchSharedCythonABIModule();
30629 2 : if (!abi_module) return NULL;
30630 2 : object_name = strrchr(type->tp_name, '.');
30631 2 : object_name = object_name ? object_name+1 : type->tp_name;
30632 2 : cached_type = (PyTypeObject*) PyObject_GetAttrString(abi_module, object_name);
30633 2 : if (cached_type) {
30634 2 : if (__Pyx_VerifyCachedType(
30635 : (PyObject *)cached_type,
30636 : object_name,
30637 : cached_type->tp_basicsize,
30638 : type->tp_basicsize) < 0) {
30639 0 : goto bad;
30640 : }
30641 2 : goto done;
30642 : }
30643 0 : if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
30644 0 : PyErr_Clear();
30645 0 : if (PyType_Ready(type) < 0) goto bad;
30646 0 : if (PyObject_SetAttrString(abi_module, object_name, (PyObject *)type) < 0)
30647 0 : goto bad;
30648 0 : Py_INCREF(type);
30649 : cached_type = type;
30650 2 : done:
30651 2 : Py_DECREF(abi_module);
30652 : return cached_type;
30653 0 : bad:
30654 0 : Py_XDECREF(cached_type);
30655 0 : cached_type = NULL;
30656 0 : goto done;
30657 : }
30658 : #else
30659 : static PyTypeObject *__Pyx_FetchCommonTypeFromSpec(PyObject *module, PyType_Spec *spec, PyObject *bases) {
30660 : PyObject *abi_module, *cached_type = NULL;
30661 : const char* object_name = strrchr(spec->name, '.');
30662 : object_name = object_name ? object_name+1 : spec->name;
30663 : abi_module = __Pyx_FetchSharedCythonABIModule();
30664 : if (!abi_module) return NULL;
30665 : cached_type = PyObject_GetAttrString(abi_module, object_name);
30666 : if (cached_type) {
30667 : Py_ssize_t basicsize;
30668 : #if CYTHON_COMPILING_IN_LIMITED_API
30669 : PyObject *py_basicsize;
30670 : py_basicsize = PyObject_GetAttrString(cached_type, "__basicsize__");
30671 : if (unlikely(!py_basicsize)) goto bad;
30672 : basicsize = PyLong_AsSsize_t(py_basicsize);
30673 : Py_DECREF(py_basicsize);
30674 : py_basicsize = 0;
30675 : if (unlikely(basicsize == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad;
30676 : #else
30677 : basicsize = likely(PyType_Check(cached_type)) ? ((PyTypeObject*) cached_type)->tp_basicsize : -1;
30678 : #endif
30679 : if (__Pyx_VerifyCachedType(
30680 : cached_type,
30681 : object_name,
30682 : basicsize,
30683 : spec->basicsize) < 0) {
30684 : goto bad;
30685 : }
30686 : goto done;
30687 : }
30688 : if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad;
30689 : PyErr_Clear();
30690 : CYTHON_UNUSED_VAR(module);
30691 : cached_type = __Pyx_PyType_FromModuleAndSpec(abi_module, spec, bases);
30692 : if (unlikely(!cached_type)) goto bad;
30693 : if (unlikely(__Pyx_fix_up_extension_type_from_spec(spec, (PyTypeObject *) cached_type) < 0)) goto bad;
30694 : if (PyObject_SetAttrString(abi_module, object_name, cached_type) < 0) goto bad;
30695 : done:
30696 : Py_DECREF(abi_module);
30697 : assert(cached_type == NULL || PyType_Check(cached_type));
30698 : return (PyTypeObject *) cached_type;
30699 : bad:
30700 : Py_XDECREF(cached_type);
30701 : cached_type = NULL;
30702 : goto done;
30703 : }
30704 : #endif
30705 :
30706 : /* PyVectorcallFastCallDict */
30707 : #if CYTHON_METH_FASTCALL
30708 0 : static PyObject *__Pyx_PyVectorcall_FastCallDict_kw(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
30709 : {
30710 0 : PyObject *res = NULL;
30711 0 : PyObject *kwnames;
30712 0 : PyObject **newargs;
30713 0 : PyObject **kwvalues;
30714 0 : Py_ssize_t i, pos;
30715 0 : size_t j;
30716 0 : PyObject *key, *value;
30717 0 : unsigned long keys_are_strings;
30718 0 : Py_ssize_t nkw = PyDict_GET_SIZE(kw);
30719 0 : newargs = (PyObject **)PyMem_Malloc((nargs + (size_t)nkw) * sizeof(args[0]));
30720 0 : if (unlikely(newargs == NULL)) {
30721 0 : PyErr_NoMemory();
30722 0 : return NULL;
30723 : }
30724 0 : for (j = 0; j < nargs; j++) newargs[j] = args[j];
30725 0 : kwnames = PyTuple_New(nkw);
30726 0 : if (unlikely(kwnames == NULL)) {
30727 0 : PyMem_Free(newargs);
30728 0 : return NULL;
30729 : }
30730 0 : kwvalues = newargs + nargs;
30731 0 : pos = i = 0;
30732 0 : keys_are_strings = Py_TPFLAGS_UNICODE_SUBCLASS;
30733 0 : while (PyDict_Next(kw, &pos, &key, &value)) {
30734 0 : keys_are_strings &= Py_TYPE(key)->tp_flags;
30735 0 : Py_INCREF(key);
30736 0 : Py_INCREF(value);
30737 0 : PyTuple_SET_ITEM(kwnames, i, key);
30738 0 : kwvalues[i] = value;
30739 0 : i++;
30740 : }
30741 0 : if (unlikely(!keys_are_strings)) {
30742 0 : PyErr_SetString(PyExc_TypeError, "keywords must be strings");
30743 0 : goto cleanup;
30744 : }
30745 0 : res = vc(func, newargs, nargs, kwnames);
30746 0 : cleanup:
30747 0 : Py_DECREF(kwnames);
30748 0 : for (i = 0; i < nkw; i++)
30749 0 : Py_DECREF(kwvalues[i]);
30750 0 : PyMem_Free(newargs);
30751 0 : return res;
30752 : }
30753 0 : static CYTHON_INLINE PyObject *__Pyx_PyVectorcall_FastCallDict(PyObject *func, __pyx_vectorcallfunc vc, PyObject *const *args, size_t nargs, PyObject *kw)
30754 : {
30755 0 : if (likely(kw == NULL) || PyDict_GET_SIZE(kw) == 0) {
30756 0 : return vc(func, args, nargs, NULL);
30757 : }
30758 0 : return __Pyx_PyVectorcall_FastCallDict_kw(func, vc, args, nargs, kw);
30759 : }
30760 : #endif
30761 :
30762 : /* CythonFunctionShared */
30763 : #if CYTHON_COMPILING_IN_LIMITED_API
30764 : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
30765 : if (__Pyx_CyFunction_Check(func)) {
30766 : return PyCFunction_GetFunction(((__pyx_CyFunctionObject*)func)->func) == (PyCFunction) cfunc;
30767 : } else if (PyCFunction_Check(func)) {
30768 : return PyCFunction_GetFunction(func) == (PyCFunction) cfunc;
30769 : }
30770 : return 0;
30771 : }
30772 : #else
30773 : static CYTHON_INLINE int __Pyx__IsSameCyOrCFunction(PyObject *func, void *cfunc) {
30774 : return __Pyx_CyOrPyCFunction_Check(func) && __Pyx_CyOrPyCFunction_GET_FUNCTION(func) == (PyCFunction) cfunc;
30775 : }
30776 : #endif
30777 0 : static CYTHON_INLINE void __Pyx__CyFunction_SetClassObj(__pyx_CyFunctionObject* f, PyObject* classobj) {
30778 : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
30779 : __Pyx_Py_XDECREF_SET(
30780 : __Pyx_CyFunction_GetClassObj(f),
30781 : ((classobj) ? __Pyx_NewRef(classobj) : NULL));
30782 : #else
30783 0 : __Pyx_Py_XDECREF_SET(
30784 : ((PyCMethodObject *) (f))->mm_class,
30785 : (PyTypeObject*)((classobj) ? __Pyx_NewRef(classobj) : NULL));
30786 : #endif
30787 0 : }
30788 : static PyObject *
30789 0 : __Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, void *closure)
30790 : {
30791 0 : CYTHON_UNUSED_VAR(closure);
30792 0 : if (unlikely(op->func_doc == NULL)) {
30793 : #if CYTHON_COMPILING_IN_LIMITED_API
30794 : op->func_doc = PyObject_GetAttrString(op->func, "__doc__");
30795 : if (unlikely(!op->func_doc)) return NULL;
30796 : #else
30797 0 : if (((PyCFunctionObject*)op)->m_ml->ml_doc) {
30798 : #if PY_MAJOR_VERSION >= 3
30799 0 : op->func_doc = PyUnicode_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
30800 : #else
30801 : op->func_doc = PyString_FromString(((PyCFunctionObject*)op)->m_ml->ml_doc);
30802 : #endif
30803 0 : if (unlikely(op->func_doc == NULL))
30804 : return NULL;
30805 : } else {
30806 0 : Py_INCREF(Py_None);
30807 0 : return Py_None;
30808 : }
30809 : #endif
30810 : }
30811 0 : Py_INCREF(op->func_doc);
30812 : return op->func_doc;
30813 : }
30814 : static int
30815 0 : __Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, void *context)
30816 : {
30817 0 : CYTHON_UNUSED_VAR(context);
30818 0 : if (value == NULL) {
30819 0 : value = Py_None;
30820 : }
30821 0 : Py_INCREF(value);
30822 0 : __Pyx_Py_XDECREF_SET(op->func_doc, value);
30823 0 : return 0;
30824 : }
30825 : static PyObject *
30826 0 : __Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, void *context)
30827 : {
30828 0 : CYTHON_UNUSED_VAR(context);
30829 0 : if (unlikely(op->func_name == NULL)) {
30830 : #if CYTHON_COMPILING_IN_LIMITED_API
30831 : op->func_name = PyObject_GetAttrString(op->func, "__name__");
30832 : #elif PY_MAJOR_VERSION >= 3
30833 0 : op->func_name = PyUnicode_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
30834 : #else
30835 : op->func_name = PyString_InternFromString(((PyCFunctionObject*)op)->m_ml->ml_name);
30836 : #endif
30837 0 : if (unlikely(op->func_name == NULL))
30838 : return NULL;
30839 : }
30840 0 : Py_INCREF(op->func_name);
30841 : return op->func_name;
30842 : }
30843 : static int
30844 0 : __Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, void *context)
30845 : {
30846 0 : CYTHON_UNUSED_VAR(context);
30847 : #if PY_MAJOR_VERSION >= 3
30848 0 : if (unlikely(value == NULL || !PyUnicode_Check(value)))
30849 : #else
30850 : if (unlikely(value == NULL || !PyString_Check(value)))
30851 : #endif
30852 : {
30853 0 : PyErr_SetString(PyExc_TypeError,
30854 : "__name__ must be set to a string object");
30855 0 : return -1;
30856 : }
30857 0 : Py_INCREF(value);
30858 0 : __Pyx_Py_XDECREF_SET(op->func_name, value);
30859 0 : return 0;
30860 : }
30861 : static PyObject *
30862 0 : __Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, void *context)
30863 : {
30864 0 : CYTHON_UNUSED_VAR(context);
30865 0 : Py_INCREF(op->func_qualname);
30866 0 : return op->func_qualname;
30867 : }
30868 : static int
30869 0 : __Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, void *context)
30870 : {
30871 0 : CYTHON_UNUSED_VAR(context);
30872 : #if PY_MAJOR_VERSION >= 3
30873 0 : if (unlikely(value == NULL || !PyUnicode_Check(value)))
30874 : #else
30875 : if (unlikely(value == NULL || !PyString_Check(value)))
30876 : #endif
30877 : {
30878 0 : PyErr_SetString(PyExc_TypeError,
30879 : "__qualname__ must be set to a string object");
30880 0 : return -1;
30881 : }
30882 0 : Py_INCREF(value);
30883 0 : __Pyx_Py_XDECREF_SET(op->func_qualname, value);
30884 0 : return 0;
30885 : }
30886 : static PyObject *
30887 0 : __Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, void *context)
30888 : {
30889 0 : CYTHON_UNUSED_VAR(context);
30890 0 : if (unlikely(op->func_dict == NULL)) {
30891 0 : op->func_dict = PyDict_New();
30892 0 : if (unlikely(op->func_dict == NULL))
30893 : return NULL;
30894 : }
30895 0 : Py_INCREF(op->func_dict);
30896 : return op->func_dict;
30897 : }
30898 : static int
30899 0 : __Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, void *context)
30900 : {
30901 0 : CYTHON_UNUSED_VAR(context);
30902 0 : if (unlikely(value == NULL)) {
30903 0 : PyErr_SetString(PyExc_TypeError,
30904 : "function's dictionary may not be deleted");
30905 0 : return -1;
30906 : }
30907 0 : if (unlikely(!PyDict_Check(value))) {
30908 0 : PyErr_SetString(PyExc_TypeError,
30909 : "setting function's dictionary to a non-dict");
30910 0 : return -1;
30911 : }
30912 0 : Py_INCREF(value);
30913 0 : __Pyx_Py_XDECREF_SET(op->func_dict, value);
30914 0 : return 0;
30915 : }
30916 : static PyObject *
30917 0 : __Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, void *context)
30918 : {
30919 0 : CYTHON_UNUSED_VAR(context);
30920 0 : Py_INCREF(op->func_globals);
30921 0 : return op->func_globals;
30922 : }
30923 : static PyObject *
30924 0 : __Pyx_CyFunction_get_closure(__pyx_CyFunctionObject *op, void *context)
30925 : {
30926 0 : CYTHON_UNUSED_VAR(op);
30927 0 : CYTHON_UNUSED_VAR(context);
30928 0 : Py_INCREF(Py_None);
30929 0 : return Py_None;
30930 : }
30931 : static PyObject *
30932 0 : __Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, void *context)
30933 : {
30934 0 : PyObject* result = (op->func_code) ? op->func_code : Py_None;
30935 0 : CYTHON_UNUSED_VAR(context);
30936 0 : Py_INCREF(result);
30937 0 : return result;
30938 : }
30939 : static int
30940 0 : __Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) {
30941 0 : int result = 0;
30942 0 : PyObject *res = op->defaults_getter((PyObject *) op);
30943 0 : if (unlikely(!res))
30944 : return -1;
30945 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
30946 0 : op->defaults_tuple = PyTuple_GET_ITEM(res, 0);
30947 0 : Py_INCREF(op->defaults_tuple);
30948 0 : op->defaults_kwdict = PyTuple_GET_ITEM(res, 1);
30949 0 : Py_INCREF(op->defaults_kwdict);
30950 : #else
30951 : op->defaults_tuple = __Pyx_PySequence_ITEM(res, 0);
30952 : if (unlikely(!op->defaults_tuple)) result = -1;
30953 : else {
30954 : op->defaults_kwdict = __Pyx_PySequence_ITEM(res, 1);
30955 : if (unlikely(!op->defaults_kwdict)) result = -1;
30956 : }
30957 : #endif
30958 0 : Py_DECREF(res);
30959 : return result;
30960 : }
30961 : static int
30962 0 : __Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
30963 0 : CYTHON_UNUSED_VAR(context);
30964 0 : if (!value) {
30965 : value = Py_None;
30966 0 : } else if (unlikely(value != Py_None && !PyTuple_Check(value))) {
30967 0 : PyErr_SetString(PyExc_TypeError,
30968 : "__defaults__ must be set to a tuple object");
30969 0 : return -1;
30970 : }
30971 0 : PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__defaults__ will not "
30972 : "currently affect the values used in function calls", 1);
30973 0 : Py_INCREF(value);
30974 0 : __Pyx_Py_XDECREF_SET(op->defaults_tuple, value);
30975 0 : return 0;
30976 : }
30977 : static PyObject *
30978 0 : __Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, void *context) {
30979 0 : PyObject* result = op->defaults_tuple;
30980 0 : CYTHON_UNUSED_VAR(context);
30981 0 : if (unlikely(!result)) {
30982 0 : if (op->defaults_getter) {
30983 0 : if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
30984 0 : result = op->defaults_tuple;
30985 : } else {
30986 : result = Py_None;
30987 : }
30988 : }
30989 0 : Py_INCREF(result);
30990 : return result;
30991 : }
30992 : static int
30993 0 : __Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
30994 0 : CYTHON_UNUSED_VAR(context);
30995 0 : if (!value) {
30996 : value = Py_None;
30997 0 : } else if (unlikely(value != Py_None && !PyDict_Check(value))) {
30998 0 : PyErr_SetString(PyExc_TypeError,
30999 : "__kwdefaults__ must be set to a dict object");
31000 0 : return -1;
31001 : }
31002 0 : PyErr_WarnEx(PyExc_RuntimeWarning, "changes to cyfunction.__kwdefaults__ will not "
31003 : "currently affect the values used in function calls", 1);
31004 0 : Py_INCREF(value);
31005 0 : __Pyx_Py_XDECREF_SET(op->defaults_kwdict, value);
31006 0 : return 0;
31007 : }
31008 : static PyObject *
31009 0 : __Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, void *context) {
31010 0 : PyObject* result = op->defaults_kwdict;
31011 0 : CYTHON_UNUSED_VAR(context);
31012 0 : if (unlikely(!result)) {
31013 0 : if (op->defaults_getter) {
31014 0 : if (unlikely(__Pyx_CyFunction_init_defaults(op) < 0)) return NULL;
31015 0 : result = op->defaults_kwdict;
31016 : } else {
31017 : result = Py_None;
31018 : }
31019 : }
31020 0 : Py_INCREF(result);
31021 : return result;
31022 : }
31023 : static int
31024 0 : __Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
31025 0 : CYTHON_UNUSED_VAR(context);
31026 0 : if (!value || value == Py_None) {
31027 : value = NULL;
31028 0 : } else if (unlikely(!PyDict_Check(value))) {
31029 0 : PyErr_SetString(PyExc_TypeError,
31030 : "__annotations__ must be set to a dict object");
31031 0 : return -1;
31032 : }
31033 0 : Py_XINCREF(value);
31034 0 : __Pyx_Py_XDECREF_SET(op->func_annotations, value);
31035 0 : return 0;
31036 : }
31037 : static PyObject *
31038 0 : __Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, void *context) {
31039 0 : PyObject* result = op->func_annotations;
31040 0 : CYTHON_UNUSED_VAR(context);
31041 0 : if (unlikely(!result)) {
31042 0 : result = PyDict_New();
31043 0 : if (unlikely(!result)) return NULL;
31044 0 : op->func_annotations = result;
31045 : }
31046 0 : Py_INCREF(result);
31047 : return result;
31048 : }
31049 : static PyObject *
31050 0 : __Pyx_CyFunction_get_is_coroutine(__pyx_CyFunctionObject *op, void *context) {
31051 0 : int is_coroutine;
31052 0 : CYTHON_UNUSED_VAR(context);
31053 0 : if (op->func_is_coroutine) {
31054 0 : return __Pyx_NewRef(op->func_is_coroutine);
31055 : }
31056 0 : is_coroutine = op->flags & __Pyx_CYFUNCTION_COROUTINE;
31057 : #if PY_VERSION_HEX >= 0x03050000
31058 0 : if (is_coroutine) {
31059 0 : PyObject *module, *fromlist, *marker = __pyx_n_s_is_coroutine;
31060 0 : fromlist = PyList_New(1);
31061 0 : if (unlikely(!fromlist)) return NULL;
31062 0 : Py_INCREF(marker);
31063 : #if CYTHON_ASSUME_SAFE_MACROS
31064 0 : PyList_SET_ITEM(fromlist, 0, marker);
31065 : #else
31066 : if (unlikely(PyList_SetItem(fromlist, 0, marker) < 0)) {
31067 : Py_DECREF(marker);
31068 : Py_DECREF(fromlist);
31069 : return NULL;
31070 : }
31071 : #endif
31072 0 : module = PyImport_ImportModuleLevelObject(__pyx_n_s_asyncio_coroutines, NULL, NULL, fromlist, 0);
31073 0 : Py_DECREF(fromlist);
31074 0 : if (unlikely(!module)) goto ignore;
31075 0 : op->func_is_coroutine = __Pyx_PyObject_GetAttrStr(module, marker);
31076 0 : Py_DECREF(module);
31077 0 : if (likely(op->func_is_coroutine)) {
31078 0 : return __Pyx_NewRef(op->func_is_coroutine);
31079 : }
31080 0 : ignore:
31081 0 : PyErr_Clear();
31082 : }
31083 : #endif
31084 0 : op->func_is_coroutine = __Pyx_PyBool_FromLong(is_coroutine);
31085 0 : return __Pyx_NewRef(op->func_is_coroutine);
31086 : }
31087 : #if CYTHON_COMPILING_IN_LIMITED_API
31088 : static PyObject *
31089 : __Pyx_CyFunction_get_module(__pyx_CyFunctionObject *op, void *context) {
31090 : CYTHON_UNUSED_VAR(context);
31091 : return PyObject_GetAttrString(op->func, "__module__");
31092 : }
31093 : static int
31094 : __Pyx_CyFunction_set_module(__pyx_CyFunctionObject *op, PyObject* value, void *context) {
31095 : CYTHON_UNUSED_VAR(context);
31096 : return PyObject_SetAttrString(op->func, "__module__", value);
31097 : }
31098 : #endif
31099 : static PyGetSetDef __pyx_CyFunction_getsets[] = {
31100 : {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
31101 : {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
31102 : {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
31103 : {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0},
31104 : {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0},
31105 : {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
31106 : {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0},
31107 : {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
31108 : {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0},
31109 : {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
31110 : {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0},
31111 : {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
31112 : {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0},
31113 : {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
31114 : {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0},
31115 : {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0},
31116 : {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0},
31117 : {(char *) "_is_coroutine", (getter)__Pyx_CyFunction_get_is_coroutine, 0, 0, 0},
31118 : #if CYTHON_COMPILING_IN_LIMITED_API
31119 : {"__module__", (getter)__Pyx_CyFunction_get_module, (setter)__Pyx_CyFunction_set_module, 0, 0},
31120 : #endif
31121 : {0, 0, 0, 0, 0}
31122 : };
31123 : static PyMemberDef __pyx_CyFunction_members[] = {
31124 : #if !CYTHON_COMPILING_IN_LIMITED_API
31125 : {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), 0, 0},
31126 : #endif
31127 : #if CYTHON_USE_TYPE_SPECS
31128 : {(char *) "__dictoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_dict), READONLY, 0},
31129 : #if CYTHON_METH_FASTCALL
31130 : #if CYTHON_BACKPORT_VECTORCALL
31131 : {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_vectorcall), READONLY, 0},
31132 : #else
31133 : #if !CYTHON_COMPILING_IN_LIMITED_API
31134 : {(char *) "__vectorcalloffset__", T_PYSSIZET, offsetof(PyCFunctionObject, vectorcall), READONLY, 0},
31135 : #endif
31136 : #endif
31137 : #endif
31138 : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
31139 : {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(__pyx_CyFunctionObject, func_weakreflist), READONLY, 0},
31140 : #else
31141 : {(char *) "__weaklistoffset__", T_PYSSIZET, offsetof(PyCFunctionObject, m_weakreflist), READONLY, 0},
31142 : #endif
31143 : #endif
31144 : {0, 0, 0, 0, 0}
31145 : };
31146 : static PyObject *
31147 0 : __Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, PyObject *args)
31148 : {
31149 0 : CYTHON_UNUSED_VAR(args);
31150 : #if PY_MAJOR_VERSION >= 3
31151 0 : Py_INCREF(m->func_qualname);
31152 0 : return m->func_qualname;
31153 : #else
31154 : return PyString_FromString(((PyCFunctionObject*)m)->m_ml->ml_name);
31155 : #endif
31156 : }
31157 : static PyMethodDef __pyx_CyFunction_methods[] = {
31158 : {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0},
31159 : {0, 0, 0, 0}
31160 : };
31161 : #if PY_VERSION_HEX < 0x030500A0 || CYTHON_COMPILING_IN_LIMITED_API
31162 : #define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist)
31163 : #else
31164 : #define __Pyx_CyFunction_weakreflist(cyfunc) (((PyCFunctionObject*)cyfunc)->m_weakreflist)
31165 : #endif
31166 9 : static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname,
31167 : PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
31168 : #if !CYTHON_COMPILING_IN_LIMITED_API
31169 9 : PyCFunctionObject *cf = (PyCFunctionObject*) op;
31170 : #endif
31171 9 : if (unlikely(op == NULL))
31172 : return NULL;
31173 : #if CYTHON_COMPILING_IN_LIMITED_API
31174 : op->func = PyCFunction_NewEx(ml, (PyObject*)op, module);
31175 : if (unlikely(!op->func)) return NULL;
31176 : #endif
31177 9 : op->flags = flags;
31178 9 : __Pyx_CyFunction_weakreflist(op) = NULL;
31179 : #if !CYTHON_COMPILING_IN_LIMITED_API
31180 9 : cf->m_ml = ml;
31181 9 : cf->m_self = (PyObject *) op;
31182 : #endif
31183 9 : Py_XINCREF(closure);
31184 9 : op->func_closure = closure;
31185 : #if !CYTHON_COMPILING_IN_LIMITED_API
31186 9 : Py_XINCREF(module);
31187 9 : cf->m_module = module;
31188 : #endif
31189 9 : op->func_dict = NULL;
31190 9 : op->func_name = NULL;
31191 9 : Py_INCREF(qualname);
31192 9 : op->func_qualname = qualname;
31193 9 : op->func_doc = NULL;
31194 : #if PY_VERSION_HEX < 0x030900B1 || CYTHON_COMPILING_IN_LIMITED_API
31195 : op->func_classobj = NULL;
31196 : #else
31197 9 : ((PyCMethodObject*)op)->mm_class = NULL;
31198 : #endif
31199 9 : op->func_globals = globals;
31200 9 : Py_INCREF(op->func_globals);
31201 9 : Py_XINCREF(code);
31202 9 : op->func_code = code;
31203 9 : op->defaults_pyobjects = 0;
31204 9 : op->defaults_size = 0;
31205 9 : op->defaults = NULL;
31206 9 : op->defaults_tuple = NULL;
31207 9 : op->defaults_kwdict = NULL;
31208 9 : op->defaults_getter = NULL;
31209 9 : op->func_annotations = NULL;
31210 9 : op->func_is_coroutine = NULL;
31211 : #if CYTHON_METH_FASTCALL
31212 9 : switch (ml->ml_flags & (METH_VARARGS | METH_FASTCALL | METH_NOARGS | METH_O | METH_KEYWORDS | METH_METHOD)) {
31213 0 : case METH_NOARGS:
31214 0 : __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_NOARGS;
31215 0 : break;
31216 0 : case METH_O:
31217 0 : __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_O;
31218 0 : break;
31219 0 : case METH_METHOD | METH_FASTCALL | METH_KEYWORDS:
31220 0 : __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD;
31221 0 : break;
31222 1 : case METH_FASTCALL | METH_KEYWORDS:
31223 1 : __Pyx_CyFunction_func_vectorcall(op) = __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS;
31224 1 : break;
31225 8 : case METH_VARARGS | METH_KEYWORDS:
31226 8 : __Pyx_CyFunction_func_vectorcall(op) = NULL;
31227 8 : break;
31228 0 : default:
31229 0 : PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
31230 0 : Py_DECREF(op);
31231 : return NULL;
31232 : }
31233 : #endif
31234 : return (PyObject *) op;
31235 : }
31236 : static int
31237 0 : __Pyx_CyFunction_clear(__pyx_CyFunctionObject *m)
31238 : {
31239 0 : Py_CLEAR(m->func_closure);
31240 : #if CYTHON_COMPILING_IN_LIMITED_API
31241 : Py_CLEAR(m->func);
31242 : #else
31243 0 : Py_CLEAR(((PyCFunctionObject*)m)->m_module);
31244 : #endif
31245 0 : Py_CLEAR(m->func_dict);
31246 0 : Py_CLEAR(m->func_name);
31247 0 : Py_CLEAR(m->func_qualname);
31248 0 : Py_CLEAR(m->func_doc);
31249 0 : Py_CLEAR(m->func_globals);
31250 0 : Py_CLEAR(m->func_code);
31251 : #if !CYTHON_COMPILING_IN_LIMITED_API
31252 : #if PY_VERSION_HEX < 0x030900B1
31253 : Py_CLEAR(__Pyx_CyFunction_GetClassObj(m));
31254 : #else
31255 : {
31256 0 : PyObject *cls = (PyObject*) ((PyCMethodObject *) (m))->mm_class;
31257 0 : ((PyCMethodObject *) (m))->mm_class = NULL;
31258 0 : Py_XDECREF(cls);
31259 : }
31260 : #endif
31261 : #endif
31262 0 : Py_CLEAR(m->defaults_tuple);
31263 0 : Py_CLEAR(m->defaults_kwdict);
31264 0 : Py_CLEAR(m->func_annotations);
31265 0 : Py_CLEAR(m->func_is_coroutine);
31266 0 : if (m->defaults) {
31267 : PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
31268 : int i;
31269 0 : for (i = 0; i < m->defaults_pyobjects; i++)
31270 0 : Py_XDECREF(pydefaults[i]);
31271 0 : PyObject_Free(m->defaults);
31272 0 : m->defaults = NULL;
31273 : }
31274 0 : return 0;
31275 : }
31276 0 : static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m)
31277 : {
31278 0 : if (__Pyx_CyFunction_weakreflist(m) != NULL)
31279 0 : PyObject_ClearWeakRefs((PyObject *) m);
31280 0 : __Pyx_CyFunction_clear(m);
31281 0 : __Pyx_PyHeapTypeObject_GC_Del(m);
31282 0 : }
31283 0 : static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m)
31284 : {
31285 0 : PyObject_GC_UnTrack(m);
31286 0 : __Pyx__CyFunction_dealloc(m);
31287 0 : }
31288 0 : static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
31289 : {
31290 0 : Py_VISIT(m->func_closure);
31291 : #if CYTHON_COMPILING_IN_LIMITED_API
31292 : Py_VISIT(m->func);
31293 : #else
31294 0 : Py_VISIT(((PyCFunctionObject*)m)->m_module);
31295 : #endif
31296 0 : Py_VISIT(m->func_dict);
31297 0 : Py_VISIT(m->func_name);
31298 0 : Py_VISIT(m->func_qualname);
31299 0 : Py_VISIT(m->func_doc);
31300 0 : Py_VISIT(m->func_globals);
31301 0 : Py_VISIT(m->func_code);
31302 : #if !CYTHON_COMPILING_IN_LIMITED_API
31303 0 : Py_VISIT(__Pyx_CyFunction_GetClassObj(m));
31304 : #endif
31305 0 : Py_VISIT(m->defaults_tuple);
31306 0 : Py_VISIT(m->defaults_kwdict);
31307 0 : Py_VISIT(m->func_is_coroutine);
31308 0 : if (m->defaults) {
31309 : PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
31310 : int i;
31311 0 : for (i = 0; i < m->defaults_pyobjects; i++)
31312 0 : Py_VISIT(pydefaults[i]);
31313 : }
31314 : return 0;
31315 : }
31316 : static PyObject*
31317 0 : __Pyx_CyFunction_repr(__pyx_CyFunctionObject *op)
31318 : {
31319 : #if PY_MAJOR_VERSION >= 3
31320 0 : return PyUnicode_FromFormat("<cyfunction %U at %p>",
31321 : op->func_qualname, (void *)op);
31322 : #else
31323 : return PyString_FromFormat("<cyfunction %s at %p>",
31324 : PyString_AsString(op->func_qualname), (void *)op);
31325 : #endif
31326 : }
31327 0 : static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) {
31328 : #if CYTHON_COMPILING_IN_LIMITED_API
31329 : PyObject *f = ((__pyx_CyFunctionObject*)func)->func;
31330 : PyObject *py_name = NULL;
31331 : PyCFunction meth;
31332 : int flags;
31333 : meth = PyCFunction_GetFunction(f);
31334 : if (unlikely(!meth)) return NULL;
31335 : flags = PyCFunction_GetFlags(f);
31336 : if (unlikely(flags < 0)) return NULL;
31337 : #else
31338 0 : PyCFunctionObject* f = (PyCFunctionObject*)func;
31339 0 : PyCFunction meth = f->m_ml->ml_meth;
31340 0 : int flags = f->m_ml->ml_flags;
31341 : #endif
31342 0 : Py_ssize_t size;
31343 0 : switch (flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) {
31344 0 : case METH_VARARGS:
31345 0 : if (likely(kw == NULL || PyDict_Size(kw) == 0))
31346 0 : return (*meth)(self, arg);
31347 : break;
31348 0 : case METH_VARARGS | METH_KEYWORDS:
31349 0 : return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw);
31350 0 : case METH_NOARGS:
31351 0 : if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
31352 : #if CYTHON_ASSUME_SAFE_MACROS
31353 0 : size = PyTuple_GET_SIZE(arg);
31354 : #else
31355 : size = PyTuple_Size(arg);
31356 : if (unlikely(size < 0)) return NULL;
31357 : #endif
31358 0 : if (likely(size == 0))
31359 0 : return (*meth)(self, NULL);
31360 : #if CYTHON_COMPILING_IN_LIMITED_API
31361 : py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
31362 : if (!py_name) return NULL;
31363 : PyErr_Format(PyExc_TypeError,
31364 : "%.200S() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
31365 : py_name, size);
31366 : Py_DECREF(py_name);
31367 : #else
31368 0 : PyErr_Format(PyExc_TypeError,
31369 : "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
31370 0 : f->m_ml->ml_name, size);
31371 : #endif
31372 0 : return NULL;
31373 : }
31374 : break;
31375 0 : case METH_O:
31376 0 : if (likely(kw == NULL || PyDict_Size(kw) == 0)) {
31377 : #if CYTHON_ASSUME_SAFE_MACROS
31378 0 : size = PyTuple_GET_SIZE(arg);
31379 : #else
31380 : size = PyTuple_Size(arg);
31381 : if (unlikely(size < 0)) return NULL;
31382 : #endif
31383 0 : if (likely(size == 1)) {
31384 0 : PyObject *result, *arg0;
31385 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31386 0 : arg0 = PyTuple_GET_ITEM(arg, 0);
31387 : #else
31388 : arg0 = __Pyx_PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL;
31389 : #endif
31390 0 : result = (*meth)(self, arg0);
31391 : #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
31392 : Py_DECREF(arg0);
31393 : #endif
31394 0 : return result;
31395 : }
31396 : #if CYTHON_COMPILING_IN_LIMITED_API
31397 : py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
31398 : if (!py_name) return NULL;
31399 : PyErr_Format(PyExc_TypeError,
31400 : "%.200S() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
31401 : py_name, size);
31402 : Py_DECREF(py_name);
31403 : #else
31404 0 : PyErr_Format(PyExc_TypeError,
31405 : "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
31406 0 : f->m_ml->ml_name, size);
31407 : #endif
31408 0 : return NULL;
31409 : }
31410 : break;
31411 0 : default:
31412 0 : PyErr_SetString(PyExc_SystemError, "Bad call flags for CyFunction");
31413 0 : return NULL;
31414 : }
31415 : #if CYTHON_COMPILING_IN_LIMITED_API
31416 : py_name = __Pyx_CyFunction_get_name((__pyx_CyFunctionObject*)func, NULL);
31417 : if (!py_name) return NULL;
31418 : PyErr_Format(PyExc_TypeError, "%.200S() takes no keyword arguments",
31419 : py_name);
31420 : Py_DECREF(py_name);
31421 : #else
31422 0 : PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments",
31423 0 : f->m_ml->ml_name);
31424 : #endif
31425 0 : return NULL;
31426 : }
31427 0 : static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) {
31428 0 : PyObject *self, *result;
31429 : #if CYTHON_COMPILING_IN_LIMITED_API
31430 : self = PyCFunction_GetSelf(((__pyx_CyFunctionObject*)func)->func);
31431 : if (unlikely(!self) && PyErr_Occurred()) return NULL;
31432 : #else
31433 0 : self = ((PyCFunctionObject*)func)->m_self;
31434 : #endif
31435 0 : result = __Pyx_CyFunction_CallMethod(func, self, arg, kw);
31436 0 : return result;
31437 : }
31438 0 : static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) {
31439 0 : PyObject *result;
31440 0 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
31441 : #if CYTHON_METH_FASTCALL
31442 0 : __pyx_vectorcallfunc vc = __Pyx_CyFunction_func_vectorcall(cyfunc);
31443 0 : if (vc) {
31444 : #if CYTHON_ASSUME_SAFE_MACROS
31445 0 : return __Pyx_PyVectorcall_FastCallDict(func, vc, &PyTuple_GET_ITEM(args, 0), (size_t)PyTuple_GET_SIZE(args), kw);
31446 : #else
31447 : (void) &__Pyx_PyVectorcall_FastCallDict;
31448 : return PyVectorcall_Call(func, args, kw);
31449 : #endif
31450 : }
31451 : #endif
31452 0 : if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
31453 0 : Py_ssize_t argc;
31454 0 : PyObject *new_args;
31455 0 : PyObject *self;
31456 : #if CYTHON_ASSUME_SAFE_MACROS
31457 0 : argc = PyTuple_GET_SIZE(args);
31458 : #else
31459 : argc = PyTuple_Size(args);
31460 : if (unlikely(!argc) < 0) return NULL;
31461 : #endif
31462 0 : new_args = PyTuple_GetSlice(args, 1, argc);
31463 0 : if (unlikely(!new_args))
31464 : return NULL;
31465 0 : self = PyTuple_GetItem(args, 0);
31466 0 : if (unlikely(!self)) {
31467 0 : Py_DECREF(new_args);
31468 : #if PY_MAJOR_VERSION > 2
31469 0 : PyErr_Format(PyExc_TypeError,
31470 : "unbound method %.200S() needs an argument",
31471 : cyfunc->func_qualname);
31472 : #else
31473 : PyErr_SetString(PyExc_TypeError,
31474 : "unbound method needs an argument");
31475 : #endif
31476 0 : return NULL;
31477 : }
31478 0 : result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw);
31479 0 : Py_DECREF(new_args);
31480 : } else {
31481 0 : result = __Pyx_CyFunction_Call(func, args, kw);
31482 : }
31483 : return result;
31484 : }
31485 : #if CYTHON_METH_FASTCALL
31486 1 : static CYTHON_INLINE int __Pyx_CyFunction_Vectorcall_CheckArgs(__pyx_CyFunctionObject *cyfunc, Py_ssize_t nargs, PyObject *kwnames)
31487 : {
31488 1 : int ret = 0;
31489 1 : if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) {
31490 0 : if (unlikely(nargs < 1)) {
31491 0 : PyErr_Format(PyExc_TypeError, "%.200s() needs an argument",
31492 0 : ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
31493 0 : return -1;
31494 : }
31495 : ret = 1;
31496 : }
31497 1 : if (unlikely(kwnames) && unlikely(PyTuple_GET_SIZE(kwnames))) {
31498 0 : PyErr_Format(PyExc_TypeError,
31499 0 : "%.200s() takes no keyword arguments", ((PyCFunctionObject*)cyfunc)->m_ml->ml_name);
31500 0 : return -1;
31501 : }
31502 : return ret;
31503 : }
31504 0 : static PyObject * __Pyx_CyFunction_Vectorcall_NOARGS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
31505 : {
31506 0 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
31507 0 : PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
31508 : #if CYTHON_BACKPORT_VECTORCALL
31509 : Py_ssize_t nargs = (Py_ssize_t)nargsf;
31510 : #else
31511 0 : Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
31512 : #endif
31513 0 : PyObject *self;
31514 0 : switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
31515 0 : case 1:
31516 0 : self = args[0];
31517 0 : args += 1;
31518 0 : nargs -= 1;
31519 0 : break;
31520 0 : case 0:
31521 0 : self = ((PyCFunctionObject*)cyfunc)->m_self;
31522 0 : break;
31523 : default:
31524 : return NULL;
31525 : }
31526 0 : if (unlikely(nargs != 0)) {
31527 0 : PyErr_Format(PyExc_TypeError,
31528 : "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)",
31529 : def->ml_name, nargs);
31530 0 : return NULL;
31531 : }
31532 0 : return def->ml_meth(self, NULL);
31533 : }
31534 0 : static PyObject * __Pyx_CyFunction_Vectorcall_O(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
31535 : {
31536 0 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
31537 0 : PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
31538 : #if CYTHON_BACKPORT_VECTORCALL
31539 : Py_ssize_t nargs = (Py_ssize_t)nargsf;
31540 : #else
31541 0 : Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
31542 : #endif
31543 0 : PyObject *self;
31544 0 : switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, kwnames)) {
31545 0 : case 1:
31546 0 : self = args[0];
31547 0 : args += 1;
31548 0 : nargs -= 1;
31549 0 : break;
31550 0 : case 0:
31551 0 : self = ((PyCFunctionObject*)cyfunc)->m_self;
31552 0 : break;
31553 : default:
31554 : return NULL;
31555 : }
31556 0 : if (unlikely(nargs != 1)) {
31557 0 : PyErr_Format(PyExc_TypeError,
31558 : "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)",
31559 : def->ml_name, nargs);
31560 0 : return NULL;
31561 : }
31562 0 : return def->ml_meth(self, args[0]);
31563 : }
31564 1 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
31565 : {
31566 1 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
31567 1 : PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
31568 : #if CYTHON_BACKPORT_VECTORCALL
31569 : Py_ssize_t nargs = (Py_ssize_t)nargsf;
31570 : #else
31571 1 : Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
31572 : #endif
31573 1 : PyObject *self;
31574 1 : switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
31575 0 : case 1:
31576 0 : self = args[0];
31577 0 : args += 1;
31578 0 : nargs -= 1;
31579 0 : break;
31580 1 : case 0:
31581 1 : self = ((PyCFunctionObject*)cyfunc)->m_self;
31582 1 : break;
31583 : default:
31584 : return NULL;
31585 : }
31586 1 : return ((__Pyx_PyCFunctionFastWithKeywords)(void(*)(void))def->ml_meth)(self, args, nargs, kwnames);
31587 : }
31588 0 : static PyObject * __Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject *func, PyObject *const *args, size_t nargsf, PyObject *kwnames)
31589 : {
31590 0 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *)func;
31591 0 : PyMethodDef* def = ((PyCFunctionObject*)cyfunc)->m_ml;
31592 0 : PyTypeObject *cls = (PyTypeObject *) __Pyx_CyFunction_GetClassObj(cyfunc);
31593 : #if CYTHON_BACKPORT_VECTORCALL
31594 : Py_ssize_t nargs = (Py_ssize_t)nargsf;
31595 : #else
31596 0 : Py_ssize_t nargs = PyVectorcall_NARGS(nargsf);
31597 : #endif
31598 0 : PyObject *self;
31599 0 : switch (__Pyx_CyFunction_Vectorcall_CheckArgs(cyfunc, nargs, NULL)) {
31600 0 : case 1:
31601 0 : self = args[0];
31602 0 : args += 1;
31603 0 : nargs -= 1;
31604 0 : break;
31605 0 : case 0:
31606 0 : self = ((PyCFunctionObject*)cyfunc)->m_self;
31607 0 : break;
31608 : default:
31609 : return NULL;
31610 : }
31611 0 : return ((__Pyx_PyCMethod)(void(*)(void))def->ml_meth)(self, cls, args, (size_t)nargs, kwnames);
31612 : }
31613 : #endif
31614 : #if CYTHON_USE_TYPE_SPECS
31615 : static PyType_Slot __pyx_CyFunctionType_slots[] = {
31616 : {Py_tp_dealloc, (void *)__Pyx_CyFunction_dealloc},
31617 : {Py_tp_repr, (void *)__Pyx_CyFunction_repr},
31618 : {Py_tp_call, (void *)__Pyx_CyFunction_CallAsMethod},
31619 : {Py_tp_traverse, (void *)__Pyx_CyFunction_traverse},
31620 : {Py_tp_clear, (void *)__Pyx_CyFunction_clear},
31621 : {Py_tp_methods, (void *)__pyx_CyFunction_methods},
31622 : {Py_tp_members, (void *)__pyx_CyFunction_members},
31623 : {Py_tp_getset, (void *)__pyx_CyFunction_getsets},
31624 : {Py_tp_descr_get, (void *)__Pyx_PyMethod_New},
31625 : {0, 0},
31626 : };
31627 : static PyType_Spec __pyx_CyFunctionType_spec = {
31628 : __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
31629 : sizeof(__pyx_CyFunctionObject),
31630 : 0,
31631 : #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
31632 : Py_TPFLAGS_METHOD_DESCRIPTOR |
31633 : #endif
31634 : #if (defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL)
31635 : _Py_TPFLAGS_HAVE_VECTORCALL |
31636 : #endif
31637 : Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
31638 : __pyx_CyFunctionType_slots
31639 : };
31640 : #else
31641 : static PyTypeObject __pyx_CyFunctionType_type = {
31642 : PyVarObject_HEAD_INIT(0, 0)
31643 : __PYX_TYPE_MODULE_PREFIX "cython_function_or_method",
31644 : sizeof(__pyx_CyFunctionObject),
31645 : 0,
31646 : (destructor) __Pyx_CyFunction_dealloc,
31647 : #if !CYTHON_METH_FASTCALL
31648 : 0,
31649 : #elif CYTHON_BACKPORT_VECTORCALL
31650 : (printfunc)offsetof(__pyx_CyFunctionObject, func_vectorcall),
31651 : #else
31652 : offsetof(PyCFunctionObject, vectorcall),
31653 : #endif
31654 : 0,
31655 : 0,
31656 : #if PY_MAJOR_VERSION < 3
31657 : 0,
31658 : #else
31659 : 0,
31660 : #endif
31661 : (reprfunc) __Pyx_CyFunction_repr,
31662 : 0,
31663 : 0,
31664 : 0,
31665 : 0,
31666 : __Pyx_CyFunction_CallAsMethod,
31667 : 0,
31668 : 0,
31669 : 0,
31670 : 0,
31671 : #ifdef Py_TPFLAGS_METHOD_DESCRIPTOR
31672 : Py_TPFLAGS_METHOD_DESCRIPTOR |
31673 : #endif
31674 : #if defined(_Py_TPFLAGS_HAVE_VECTORCALL) && CYTHON_METH_FASTCALL
31675 : _Py_TPFLAGS_HAVE_VECTORCALL |
31676 : #endif
31677 : Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
31678 : 0,
31679 : (traverseproc) __Pyx_CyFunction_traverse,
31680 : (inquiry) __Pyx_CyFunction_clear,
31681 : 0,
31682 : #if PY_VERSION_HEX < 0x030500A0
31683 : offsetof(__pyx_CyFunctionObject, func_weakreflist),
31684 : #else
31685 : offsetof(PyCFunctionObject, m_weakreflist),
31686 : #endif
31687 : 0,
31688 : 0,
31689 : __pyx_CyFunction_methods,
31690 : __pyx_CyFunction_members,
31691 : __pyx_CyFunction_getsets,
31692 : 0,
31693 : 0,
31694 : __Pyx_PyMethod_New,
31695 : 0,
31696 : offsetof(__pyx_CyFunctionObject, func_dict),
31697 : 0,
31698 : 0,
31699 : 0,
31700 : 0,
31701 : 0,
31702 : 0,
31703 : 0,
31704 : 0,
31705 : 0,
31706 : 0,
31707 : 0,
31708 : 0,
31709 : #if PY_VERSION_HEX >= 0x030400a1
31710 : 0,
31711 : #endif
31712 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
31713 : 0,
31714 : #endif
31715 : #if __PYX_NEED_TP_PRINT_SLOT
31716 : 0,
31717 : #endif
31718 : #if PY_VERSION_HEX >= 0x030C0000
31719 : 0,
31720 : #endif
31721 : #if PY_VERSION_HEX >= 0x030d00A4
31722 : 0,
31723 : #endif
31724 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
31725 : 0,
31726 : #endif
31727 : };
31728 : #endif
31729 1 : static int __pyx_CyFunction_init(PyObject *module) {
31730 : #if CYTHON_USE_TYPE_SPECS
31731 : __pyx_CyFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_CyFunctionType_spec, NULL);
31732 : #else
31733 1 : CYTHON_UNUSED_VAR(module);
31734 1 : __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type);
31735 : #endif
31736 1 : if (unlikely(__pyx_CyFunctionType == NULL)) {
31737 0 : return -1;
31738 : }
31739 : return 0;
31740 : }
31741 1 : static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) {
31742 1 : __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
31743 1 : m->defaults = PyObject_Malloc(size);
31744 1 : if (unlikely(!m->defaults))
31745 0 : return PyErr_NoMemory();
31746 1 : memset(m->defaults, 0, size);
31747 1 : m->defaults_pyobjects = pyobjects;
31748 1 : m->defaults_size = size;
31749 1 : return m->defaults;
31750 : }
31751 8 : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) {
31752 8 : __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
31753 8 : m->defaults_tuple = tuple;
31754 8 : Py_INCREF(tuple);
31755 : }
31756 : static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) {
31757 : __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
31758 : m->defaults_kwdict = dict;
31759 : Py_INCREF(dict);
31760 : }
31761 : static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) {
31762 : __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func;
31763 : m->func_annotations = dict;
31764 : Py_INCREF(dict);
31765 : }
31766 :
31767 : /* CythonFunction */
31768 1 : static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname,
31769 : PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) {
31770 1 : PyObject *op = __Pyx_CyFunction_Init(
31771 1 : PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType),
31772 : ml, flags, qualname, closure, module, globals, code
31773 : );
31774 1 : if (likely(op)) {
31775 1 : PyObject_GC_Track(op);
31776 : }
31777 1 : return op;
31778 : }
31779 :
31780 : /* FusedFunction */
31781 : static PyObject *
31782 8 : __pyx_FusedFunction_New(PyMethodDef *ml, int flags,
31783 : PyObject *qualname, PyObject *closure,
31784 : PyObject *module, PyObject *globals,
31785 : PyObject *code)
31786 : {
31787 8 : PyObject *op = __Pyx_CyFunction_Init(
31788 8 : PyObject_GC_New(__pyx_CyFunctionObject, __pyx_FusedFunctionType),
31789 : ml, flags, qualname, closure, module, globals, code
31790 : );
31791 8 : if (likely(op)) {
31792 8 : __pyx_FusedFunctionObject *fusedfunc = (__pyx_FusedFunctionObject *) op;
31793 8 : fusedfunc->__signatures__ = NULL;
31794 8 : fusedfunc->self = NULL;
31795 8 : PyObject_GC_Track(op);
31796 : }
31797 8 : return op;
31798 : }
31799 : static void
31800 0 : __pyx_FusedFunction_dealloc(__pyx_FusedFunctionObject *self)
31801 : {
31802 0 : PyObject_GC_UnTrack(self);
31803 0 : Py_CLEAR(self->self);
31804 0 : Py_CLEAR(self->__signatures__);
31805 0 : __Pyx__CyFunction_dealloc((__pyx_CyFunctionObject *) self);
31806 0 : }
31807 : static int
31808 0 : __pyx_FusedFunction_traverse(__pyx_FusedFunctionObject *self,
31809 : visitproc visit,
31810 : void *arg)
31811 : {
31812 0 : Py_VISIT(self->self);
31813 0 : Py_VISIT(self->__signatures__);
31814 0 : return __Pyx_CyFunction_traverse((__pyx_CyFunctionObject *) self, visit, arg);
31815 : }
31816 : static int
31817 0 : __pyx_FusedFunction_clear(__pyx_FusedFunctionObject *self)
31818 : {
31819 0 : Py_CLEAR(self->self);
31820 0 : Py_CLEAR(self->__signatures__);
31821 0 : return __Pyx_CyFunction_clear((__pyx_CyFunctionObject *) self);
31822 : }
31823 : static PyObject *
31824 0 : __pyx_FusedFunction_descr_get(PyObject *self, PyObject *obj, PyObject *type)
31825 : {
31826 0 : __pyx_FusedFunctionObject *func, *meth;
31827 0 : func = (__pyx_FusedFunctionObject *) self;
31828 0 : if (func->self || func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD) {
31829 0 : Py_INCREF(self);
31830 0 : return self;
31831 : }
31832 0 : if (obj == Py_None)
31833 0 : obj = NULL;
31834 0 : if (func->func.flags & __Pyx_CYFUNCTION_CLASSMETHOD)
31835 0 : obj = type;
31836 0 : if (obj == NULL) {
31837 0 : Py_INCREF(self);
31838 0 : return self;
31839 : }
31840 0 : meth = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_New(
31841 : ((PyCFunctionObject *) func)->m_ml,
31842 : ((__pyx_CyFunctionObject *) func)->flags,
31843 : ((__pyx_CyFunctionObject *) func)->func_qualname,
31844 : ((__pyx_CyFunctionObject *) func)->func_closure,
31845 : ((PyCFunctionObject *) func)->m_module,
31846 : ((__pyx_CyFunctionObject *) func)->func_globals,
31847 : ((__pyx_CyFunctionObject *) func)->func_code);
31848 0 : if (unlikely(!meth))
31849 : return NULL;
31850 0 : if (func->func.defaults) {
31851 0 : PyObject **pydefaults;
31852 0 : int i;
31853 0 : if (unlikely(!__Pyx_CyFunction_InitDefaults(
31854 : (PyObject*)meth,
31855 : func->func.defaults_size,
31856 : func->func.defaults_pyobjects))) {
31857 0 : Py_XDECREF((PyObject*)meth);
31858 0 : return NULL;
31859 : }
31860 0 : memcpy(meth->func.defaults, func->func.defaults, func->func.defaults_size);
31861 0 : pydefaults = __Pyx_CyFunction_Defaults(PyObject *, meth);
31862 0 : for (i = 0; i < meth->func.defaults_pyobjects; i++)
31863 0 : Py_XINCREF(pydefaults[i]);
31864 : }
31865 0 : __Pyx_CyFunction_SetClassObj(meth, __Pyx_CyFunction_GetClassObj(func));
31866 0 : Py_XINCREF(func->__signatures__);
31867 0 : meth->__signatures__ = func->__signatures__;
31868 0 : Py_XINCREF(func->func.defaults_tuple);
31869 0 : meth->func.defaults_tuple = func->func.defaults_tuple;
31870 0 : Py_XINCREF(obj);
31871 0 : meth->self = obj;
31872 0 : return (PyObject *) meth;
31873 : }
31874 : static PyObject *
31875 0 : _obj_to_string(PyObject *obj)
31876 : {
31877 0 : if (PyUnicode_CheckExact(obj))
31878 0 : return __Pyx_NewRef(obj);
31879 : #if PY_MAJOR_VERSION == 2
31880 : else if (PyString_Check(obj))
31881 : return PyUnicode_FromEncodedObject(obj, NULL, "strict");
31882 : #endif
31883 0 : else if (PyType_Check(obj))
31884 0 : return PyObject_GetAttr(obj, __pyx_n_s_name_2);
31885 : else
31886 0 : return PyObject_Unicode(obj);
31887 : }
31888 : static PyObject *
31889 0 : __pyx_FusedFunction_getitem(__pyx_FusedFunctionObject *self, PyObject *idx)
31890 : {
31891 0 : PyObject *signature = NULL;
31892 0 : PyObject *unbound_result_func;
31893 0 : PyObject *result_func = NULL;
31894 0 : if (unlikely(self->__signatures__ == NULL)) {
31895 0 : PyErr_SetString(PyExc_TypeError, "Function is not fused");
31896 0 : return NULL;
31897 : }
31898 0 : if (PyTuple_Check(idx)) {
31899 0 : Py_ssize_t n = PyTuple_GET_SIZE(idx);
31900 0 : PyObject *list = PyList_New(n);
31901 0 : int i;
31902 0 : if (unlikely(!list))
31903 : return NULL;
31904 0 : for (i = 0; i < n; i++) {
31905 0 : PyObject *string;
31906 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31907 0 : PyObject *item = PyTuple_GET_ITEM(idx, i);
31908 : #else
31909 : PyObject *item = PySequence_ITEM(idx, i); if (unlikely(!item)) goto __pyx_err;
31910 : #endif
31911 0 : string = _obj_to_string(item);
31912 : #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS)
31913 : Py_DECREF(item);
31914 : #endif
31915 0 : if (unlikely(!string)) goto __pyx_err;
31916 0 : PyList_SET_ITEM(list, i, string);
31917 : }
31918 0 : signature = PyUnicode_Join(__pyx_kp_u__12, list);
31919 0 : __pyx_err:;
31920 0 : Py_DECREF(list);
31921 : } else {
31922 0 : signature = _obj_to_string(idx);
31923 : }
31924 0 : if (unlikely(!signature))
31925 : return NULL;
31926 0 : unbound_result_func = PyObject_GetItem(self->__signatures__, signature);
31927 0 : if (likely(unbound_result_func)) {
31928 0 : if (self->self) {
31929 0 : __pyx_FusedFunctionObject *unbound = (__pyx_FusedFunctionObject *) unbound_result_func;
31930 0 : __Pyx_CyFunction_SetClassObj(unbound, __Pyx_CyFunction_GetClassObj(self));
31931 0 : result_func = __pyx_FusedFunction_descr_get(unbound_result_func,
31932 : self->self, self->self);
31933 : } else {
31934 0 : result_func = unbound_result_func;
31935 0 : Py_INCREF(result_func);
31936 : }
31937 : }
31938 0 : Py_DECREF(signature);
31939 0 : Py_XDECREF(unbound_result_func);
31940 0 : return result_func;
31941 : }
31942 : static PyObject *
31943 0 : __pyx_FusedFunction_callfunction(PyObject *func, PyObject *args, PyObject *kw)
31944 : {
31945 0 : __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func;
31946 0 : int static_specialized = (cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD &&
31947 0 : !((__pyx_FusedFunctionObject *) func)->__signatures__);
31948 0 : if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !static_specialized) {
31949 0 : return __Pyx_CyFunction_CallAsMethod(func, args, kw);
31950 : } else {
31951 0 : return __Pyx_CyFunction_Call(func, args, kw);
31952 : }
31953 : }
31954 : static PyObject *
31955 0 : __pyx_FusedFunction_call(PyObject *func, PyObject *args, PyObject *kw)
31956 : {
31957 0 : __pyx_FusedFunctionObject *binding_func = (__pyx_FusedFunctionObject *) func;
31958 0 : Py_ssize_t argc = PyTuple_GET_SIZE(args);
31959 0 : PyObject *new_args = NULL;
31960 0 : __pyx_FusedFunctionObject *new_func = NULL;
31961 0 : PyObject *result = NULL;
31962 0 : int is_staticmethod = binding_func->func.flags & __Pyx_CYFUNCTION_STATICMETHOD;
31963 0 : if (binding_func->self) {
31964 0 : PyObject *self;
31965 0 : Py_ssize_t i;
31966 0 : new_args = PyTuple_New(argc + 1);
31967 0 : if (unlikely(!new_args))
31968 : return NULL;
31969 0 : self = binding_func->self;
31970 0 : Py_INCREF(self);
31971 0 : PyTuple_SET_ITEM(new_args, 0, self);
31972 0 : self = NULL;
31973 0 : for (i = 0; i < argc; i++) {
31974 : #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
31975 0 : PyObject *item = PyTuple_GET_ITEM(args, i);
31976 0 : Py_INCREF(item);
31977 : #else
31978 : PyObject *item = PySequence_ITEM(args, i); if (unlikely(!item)) goto bad;
31979 : #endif
31980 0 : PyTuple_SET_ITEM(new_args, i + 1, item);
31981 : }
31982 : args = new_args;
31983 : }
31984 0 : if (binding_func->__signatures__) {
31985 0 : PyObject *tup;
31986 0 : if (is_staticmethod && binding_func->func.flags & __Pyx_CYFUNCTION_CCLASS) {
31987 0 : tup = PyTuple_Pack(3, args,
31988 : kw == NULL ? Py_None : kw,
31989 : binding_func->func.defaults_tuple);
31990 0 : if (unlikely(!tup)) goto bad;
31991 0 : new_func = (__pyx_FusedFunctionObject *) __Pyx_CyFunction_CallMethod(
31992 : func, binding_func->__signatures__, tup, NULL);
31993 : } else {
31994 0 : tup = PyTuple_Pack(4, binding_func->__signatures__, args,
31995 : kw == NULL ? Py_None : kw,
31996 : binding_func->func.defaults_tuple);
31997 0 : if (unlikely(!tup)) goto bad;
31998 0 : new_func = (__pyx_FusedFunctionObject *) __pyx_FusedFunction_callfunction(func, tup, NULL);
31999 : }
32000 0 : Py_DECREF(tup);
32001 0 : if (unlikely(!new_func))
32002 0 : goto bad;
32003 0 : __Pyx_CyFunction_SetClassObj(new_func, __Pyx_CyFunction_GetClassObj(binding_func));
32004 0 : func = (PyObject *) new_func;
32005 : }
32006 0 : result = __pyx_FusedFunction_callfunction(func, args, kw);
32007 0 : bad:
32008 0 : Py_XDECREF(new_args);
32009 0 : Py_XDECREF((PyObject *) new_func);
32010 0 : return result;
32011 : }
32012 : static PyMemberDef __pyx_FusedFunction_members[] = {
32013 : {(char *) "__signatures__",
32014 : T_OBJECT,
32015 : offsetof(__pyx_FusedFunctionObject, __signatures__),
32016 : READONLY,
32017 : 0},
32018 : {(char *) "__self__", T_OBJECT_EX, offsetof(__pyx_FusedFunctionObject, self), READONLY, 0},
32019 : {0, 0, 0, 0, 0},
32020 : };
32021 : static PyGetSetDef __pyx_FusedFunction_getsets[] = {
32022 : {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0},
32023 : {0, 0, 0, 0, 0}
32024 : };
32025 : #if CYTHON_USE_TYPE_SPECS
32026 : static PyType_Slot __pyx_FusedFunctionType_slots[] = {
32027 : {Py_tp_dealloc, (void *)__pyx_FusedFunction_dealloc},
32028 : {Py_tp_call, (void *)__pyx_FusedFunction_call},
32029 : {Py_tp_traverse, (void *)__pyx_FusedFunction_traverse},
32030 : {Py_tp_clear, (void *)__pyx_FusedFunction_clear},
32031 : {Py_tp_members, (void *)__pyx_FusedFunction_members},
32032 : {Py_tp_getset, (void *)__pyx_FusedFunction_getsets},
32033 : {Py_tp_descr_get, (void *)__pyx_FusedFunction_descr_get},
32034 : {Py_mp_subscript, (void *)__pyx_FusedFunction_getitem},
32035 : {0, 0},
32036 : };
32037 : static PyType_Spec __pyx_FusedFunctionType_spec = {
32038 : __PYX_TYPE_MODULE_PREFIX "fused_cython_function",
32039 : sizeof(__pyx_FusedFunctionObject),
32040 : 0,
32041 : Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
32042 : __pyx_FusedFunctionType_slots
32043 : };
32044 : #else
32045 : static PyMappingMethods __pyx_FusedFunction_mapping_methods = {
32046 : 0,
32047 : (binaryfunc) __pyx_FusedFunction_getitem,
32048 : 0,
32049 : };
32050 : static PyTypeObject __pyx_FusedFunctionType_type = {
32051 : PyVarObject_HEAD_INIT(0, 0)
32052 : __PYX_TYPE_MODULE_PREFIX "fused_cython_function",
32053 : sizeof(__pyx_FusedFunctionObject),
32054 : 0,
32055 : (destructor) __pyx_FusedFunction_dealloc,
32056 : 0,
32057 : 0,
32058 : 0,
32059 : #if PY_MAJOR_VERSION < 3
32060 : 0,
32061 : #else
32062 : 0,
32063 : #endif
32064 : 0,
32065 : 0,
32066 : 0,
32067 : &__pyx_FusedFunction_mapping_methods,
32068 : 0,
32069 : (ternaryfunc) __pyx_FusedFunction_call,
32070 : 0,
32071 : 0,
32072 : 0,
32073 : 0,
32074 : Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
32075 : 0,
32076 : (traverseproc) __pyx_FusedFunction_traverse,
32077 : (inquiry) __pyx_FusedFunction_clear,
32078 : 0,
32079 : 0,
32080 : 0,
32081 : 0,
32082 : 0,
32083 : __pyx_FusedFunction_members,
32084 : __pyx_FusedFunction_getsets,
32085 : &__pyx_CyFunctionType_type,
32086 : 0,
32087 : __pyx_FusedFunction_descr_get,
32088 : 0,
32089 : 0,
32090 : 0,
32091 : 0,
32092 : 0,
32093 : 0,
32094 : 0,
32095 : 0,
32096 : 0,
32097 : 0,
32098 : 0,
32099 : 0,
32100 : 0,
32101 : 0,
32102 : #if PY_VERSION_HEX >= 0x030400a1
32103 : 0,
32104 : #endif
32105 : #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800)
32106 : 0,
32107 : #endif
32108 : #if __PYX_NEED_TP_PRINT_SLOT
32109 : 0,
32110 : #endif
32111 : #if PY_VERSION_HEX >= 0x030C0000
32112 : 0,
32113 : #endif
32114 : #if PY_VERSION_HEX >= 0x030d00A4
32115 : 0,
32116 : #endif
32117 : #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000
32118 : 0,
32119 : #endif
32120 : };
32121 : #endif
32122 1 : static int __pyx_FusedFunction_init(PyObject *module) {
32123 : #if CYTHON_USE_TYPE_SPECS
32124 : PyObject *bases = PyTuple_Pack(1, __pyx_CyFunctionType);
32125 : if (unlikely(!bases)) {
32126 : return -1;
32127 : }
32128 : __pyx_FusedFunctionType = __Pyx_FetchCommonTypeFromSpec(module, &__pyx_FusedFunctionType_spec, bases);
32129 : Py_DECREF(bases);
32130 : #else
32131 1 : CYTHON_UNUSED_VAR(module);
32132 1 : __pyx_FusedFunctionType_type.tp_base = __pyx_CyFunctionType;
32133 1 : __pyx_FusedFunctionType = __Pyx_FetchCommonType(&__pyx_FusedFunctionType_type);
32134 : #endif
32135 1 : if (unlikely(__pyx_FusedFunctionType == NULL)) {
32136 0 : return -1;
32137 : }
32138 : return 0;
32139 : }
32140 :
32141 : /* CLineInTraceback */
32142 : #ifndef CYTHON_CLINE_IN_TRACEBACK
32143 0 : static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) {
32144 0 : PyObject *use_cline;
32145 0 : PyObject *ptype, *pvalue, *ptraceback;
32146 : #if CYTHON_COMPILING_IN_CPYTHON
32147 0 : PyObject **cython_runtime_dict;
32148 : #endif
32149 0 : CYTHON_MAYBE_UNUSED_VAR(tstate);
32150 0 : if (unlikely(!__pyx_cython_runtime)) {
32151 : return c_line;
32152 : }
32153 0 : __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
32154 : #if CYTHON_COMPILING_IN_CPYTHON
32155 0 : cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime);
32156 0 : if (likely(cython_runtime_dict)) {
32157 0 : __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
32158 : use_cline, *cython_runtime_dict,
32159 : __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback))
32160 : } else
32161 : #endif
32162 : {
32163 0 : PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStrNoError(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback);
32164 0 : if (use_cline_obj) {
32165 0 : use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True;
32166 0 : Py_DECREF(use_cline_obj);
32167 : } else {
32168 0 : PyErr_Clear();
32169 0 : use_cline = NULL;
32170 : }
32171 : }
32172 0 : if (!use_cline) {
32173 0 : c_line = 0;
32174 0 : (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False);
32175 : }
32176 0 : else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) {
32177 : c_line = 0;
32178 : }
32179 0 : __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
32180 0 : return c_line;
32181 : }
32182 : #endif
32183 :
32184 : /* CodeObjectCache */
32185 : #if !CYTHON_COMPILING_IN_LIMITED_API
32186 0 : static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
32187 0 : int start = 0, mid = 0, end = count - 1;
32188 0 : if (end >= 0 && code_line > entries[end].code_line) {
32189 : return count;
32190 : }
32191 0 : while (start < end) {
32192 0 : mid = start + (end - start) / 2;
32193 0 : if (code_line < entries[mid].code_line) {
32194 : end = mid;
32195 0 : } else if (code_line > entries[mid].code_line) {
32196 0 : start = mid + 1;
32197 : } else {
32198 0 : return mid;
32199 : }
32200 : }
32201 0 : if (code_line <= entries[mid].code_line) {
32202 : return mid;
32203 : } else {
32204 0 : return mid + 1;
32205 : }
32206 : }
32207 0 : static PyCodeObject *__pyx_find_code_object(int code_line) {
32208 0 : PyCodeObject* code_object;
32209 0 : int pos;
32210 0 : if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) {
32211 : return NULL;
32212 : }
32213 0 : pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
32214 0 : if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) {
32215 : return NULL;
32216 : }
32217 0 : code_object = __pyx_code_cache.entries[pos].code_object;
32218 0 : Py_INCREF(code_object);
32219 : return code_object;
32220 : }
32221 0 : static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) {
32222 0 : int pos, i;
32223 0 : __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries;
32224 0 : if (unlikely(!code_line)) {
32225 : return;
32226 : }
32227 0 : if (unlikely(!entries)) {
32228 0 : entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry));
32229 0 : if (likely(entries)) {
32230 0 : __pyx_code_cache.entries = entries;
32231 0 : __pyx_code_cache.max_count = 64;
32232 0 : __pyx_code_cache.count = 1;
32233 0 : entries[0].code_line = code_line;
32234 0 : entries[0].code_object = code_object;
32235 0 : Py_INCREF(code_object);
32236 : }
32237 0 : return;
32238 : }
32239 0 : pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line);
32240 0 : if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) {
32241 0 : PyCodeObject* tmp = entries[pos].code_object;
32242 0 : entries[pos].code_object = code_object;
32243 0 : Py_DECREF(tmp);
32244 0 : return;
32245 : }
32246 0 : if (__pyx_code_cache.count == __pyx_code_cache.max_count) {
32247 0 : int new_max = __pyx_code_cache.max_count + 64;
32248 0 : entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc(
32249 0 : __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry));
32250 0 : if (unlikely(!entries)) {
32251 : return;
32252 : }
32253 0 : __pyx_code_cache.entries = entries;
32254 0 : __pyx_code_cache.max_count = new_max;
32255 : }
32256 0 : for (i=__pyx_code_cache.count; i>pos; i--) {
32257 0 : entries[i] = entries[i-1];
32258 : }
32259 0 : entries[pos].code_line = code_line;
32260 0 : entries[pos].code_object = code_object;
32261 0 : __pyx_code_cache.count++;
32262 0 : Py_INCREF(code_object);
32263 : }
32264 : #endif
32265 :
32266 : /* AddTraceback */
32267 : #include "compile.h"
32268 : #include "frameobject.h"
32269 : #include "traceback.h"
32270 : #if PY_VERSION_HEX >= 0x030b00a6 && !CYTHON_COMPILING_IN_LIMITED_API
32271 : #ifndef Py_BUILD_CORE
32272 : #define Py_BUILD_CORE 1
32273 : #endif
32274 : #include "internal/pycore_frame.h"
32275 : #endif
32276 : #if CYTHON_COMPILING_IN_LIMITED_API
32277 : static PyObject *__Pyx_PyCode_Replace_For_AddTraceback(PyObject *code, PyObject *scratch_dict,
32278 : PyObject *firstlineno, PyObject *name) {
32279 : PyObject *replace = NULL;
32280 : if (unlikely(PyDict_SetItemString(scratch_dict, "co_firstlineno", firstlineno))) return NULL;
32281 : if (unlikely(PyDict_SetItemString(scratch_dict, "co_name", name))) return NULL;
32282 : replace = PyObject_GetAttrString(code, "replace");
32283 : if (likely(replace)) {
32284 : PyObject *result;
32285 : result = PyObject_Call(replace, __pyx_empty_tuple, scratch_dict);
32286 : Py_DECREF(replace);
32287 : return result;
32288 : }
32289 : PyErr_Clear();
32290 : #if __PYX_LIMITED_VERSION_HEX < 0x030780000
32291 : {
32292 : PyObject *compiled = NULL, *result = NULL;
32293 : if (unlikely(PyDict_SetItemString(scratch_dict, "code", code))) return NULL;
32294 : if (unlikely(PyDict_SetItemString(scratch_dict, "type", (PyObject*)(&PyType_Type)))) return NULL;
32295 : compiled = Py_CompileString(
32296 : "out = type(code)(\n"
32297 : " code.co_argcount, code.co_kwonlyargcount, code.co_nlocals, code.co_stacksize,\n"
32298 : " code.co_flags, code.co_code, code.co_consts, code.co_names,\n"
32299 : " code.co_varnames, code.co_filename, co_name, co_firstlineno,\n"
32300 : " code.co_lnotab)\n", "<dummy>", Py_file_input);
32301 : if (!compiled) return NULL;
32302 : result = PyEval_EvalCode(compiled, scratch_dict, scratch_dict);
32303 : Py_DECREF(compiled);
32304 : if (!result) PyErr_Print();
32305 : Py_DECREF(result);
32306 : result = PyDict_GetItemString(scratch_dict, "out");
32307 : if (result) Py_INCREF(result);
32308 : return result;
32309 : }
32310 : #else
32311 : return NULL;
32312 : #endif
32313 : }
32314 : static void __Pyx_AddTraceback(const char *funcname, int c_line,
32315 : int py_line, const char *filename) {
32316 : PyObject *code_object = NULL, *py_py_line = NULL, *py_funcname = NULL, *dict = NULL;
32317 : PyObject *replace = NULL, *getframe = NULL, *frame = NULL;
32318 : PyObject *exc_type, *exc_value, *exc_traceback;
32319 : int success = 0;
32320 : if (c_line) {
32321 : (void) __pyx_cfilenm;
32322 : (void) __Pyx_CLineForTraceback(__Pyx_PyThreadState_Current, c_line);
32323 : }
32324 : PyErr_Fetch(&exc_type, &exc_value, &exc_traceback);
32325 : code_object = Py_CompileString("_getframe()", filename, Py_eval_input);
32326 : if (unlikely(!code_object)) goto bad;
32327 : py_py_line = PyLong_FromLong(py_line);
32328 : if (unlikely(!py_py_line)) goto bad;
32329 : py_funcname = PyUnicode_FromString(funcname);
32330 : if (unlikely(!py_funcname)) goto bad;
32331 : dict = PyDict_New();
32332 : if (unlikely(!dict)) goto bad;
32333 : {
32334 : PyObject *old_code_object = code_object;
32335 : code_object = __Pyx_PyCode_Replace_For_AddTraceback(code_object, dict, py_py_line, py_funcname);
32336 : Py_DECREF(old_code_object);
32337 : }
32338 : if (unlikely(!code_object)) goto bad;
32339 : getframe = PySys_GetObject("_getframe");
32340 : if (unlikely(!getframe)) goto bad;
32341 : if (unlikely(PyDict_SetItemString(dict, "_getframe", getframe))) goto bad;
32342 : frame = PyEval_EvalCode(code_object, dict, dict);
32343 : if (unlikely(!frame) || frame == Py_None) goto bad;
32344 : success = 1;
32345 : bad:
32346 : PyErr_Restore(exc_type, exc_value, exc_traceback);
32347 : Py_XDECREF(code_object);
32348 : Py_XDECREF(py_py_line);
32349 : Py_XDECREF(py_funcname);
32350 : Py_XDECREF(dict);
32351 : Py_XDECREF(replace);
32352 : if (success) {
32353 : PyTraceBack_Here(
32354 : (struct _frame*)frame);
32355 : }
32356 : Py_XDECREF(frame);
32357 : }
32358 : #else
32359 0 : static PyCodeObject* __Pyx_CreateCodeObjectForTraceback(
32360 : const char *funcname, int c_line,
32361 : int py_line, const char *filename) {
32362 0 : PyCodeObject *py_code = NULL;
32363 0 : PyObject *py_funcname = NULL;
32364 : #if PY_MAJOR_VERSION < 3
32365 : PyObject *py_srcfile = NULL;
32366 : py_srcfile = PyString_FromString(filename);
32367 : if (!py_srcfile) goto bad;
32368 : #endif
32369 0 : if (c_line) {
32370 : #if PY_MAJOR_VERSION < 3
32371 : py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
32372 : if (!py_funcname) goto bad;
32373 : #else
32374 0 : py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line);
32375 0 : if (!py_funcname) goto bad;
32376 0 : funcname = PyUnicode_AsUTF8(py_funcname);
32377 0 : if (!funcname) goto bad;
32378 : #endif
32379 : }
32380 : else {
32381 : #if PY_MAJOR_VERSION < 3
32382 : py_funcname = PyString_FromString(funcname);
32383 : if (!py_funcname) goto bad;
32384 : #endif
32385 0 : }
32386 : #if PY_MAJOR_VERSION < 3
32387 : py_code = __Pyx_PyCode_New(
32388 : 0,
32389 : 0,
32390 : 0,
32391 : 0,
32392 : 0,
32393 : 0,
32394 : __pyx_empty_bytes, /*PyObject *code,*/
32395 : __pyx_empty_tuple, /*PyObject *consts,*/
32396 : __pyx_empty_tuple, /*PyObject *names,*/
32397 : __pyx_empty_tuple, /*PyObject *varnames,*/
32398 : __pyx_empty_tuple, /*PyObject *freevars,*/
32399 : __pyx_empty_tuple, /*PyObject *cellvars,*/
32400 : py_srcfile, /*PyObject *filename,*/
32401 : py_funcname, /*PyObject *name,*/
32402 : py_line,
32403 : __pyx_empty_bytes /*PyObject *lnotab*/
32404 : );
32405 : Py_DECREF(py_srcfile);
32406 : #else
32407 0 : py_code = PyCode_NewEmpty(filename, funcname, py_line);
32408 : #endif
32409 0 : Py_XDECREF(py_funcname);
32410 0 : return py_code;
32411 0 : bad:
32412 0 : Py_XDECREF(py_funcname);
32413 : #if PY_MAJOR_VERSION < 3
32414 : Py_XDECREF(py_srcfile);
32415 : #endif
32416 0 : return NULL;
32417 : }
32418 0 : static void __Pyx_AddTraceback(const char *funcname, int c_line,
32419 : int py_line, const char *filename) {
32420 0 : PyCodeObject *py_code = 0;
32421 0 : PyFrameObject *py_frame = 0;
32422 0 : PyThreadState *tstate = __Pyx_PyThreadState_Current;
32423 0 : PyObject *ptype, *pvalue, *ptraceback;
32424 0 : if (c_line) {
32425 0 : c_line = __Pyx_CLineForTraceback(tstate, c_line);
32426 : }
32427 0 : py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
32428 0 : if (!py_code) {
32429 0 : __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
32430 0 : py_code = __Pyx_CreateCodeObjectForTraceback(
32431 : funcname, c_line, py_line, filename);
32432 0 : if (!py_code) {
32433 : /* If the code object creation fails, then we should clear the
32434 : fetched exception references and propagate the new exception */
32435 0 : Py_XDECREF(ptype);
32436 0 : Py_XDECREF(pvalue);
32437 0 : Py_XDECREF(ptraceback);
32438 0 : goto bad;
32439 : }
32440 0 : __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
32441 0 : __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
32442 : }
32443 0 : py_frame = PyFrame_New(
32444 : tstate, /*PyThreadState *tstate,*/
32445 : py_code, /*PyCodeObject *code,*/
32446 0 : __pyx_d, /*PyObject *globals,*/
32447 : 0 /*PyObject *locals*/
32448 : );
32449 0 : if (!py_frame) goto bad;
32450 0 : __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
32451 0 : PyTraceBack_Here(py_frame);
32452 0 : bad:
32453 0 : Py_XDECREF(py_code);
32454 0 : Py_XDECREF(py_frame);
32455 0 : }
32456 : #endif
32457 :
32458 : /* Declarations */
32459 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32460 : #ifdef __cplusplus
32461 : static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
32462 : return ::std::complex< float >(x, y);
32463 : }
32464 : #else
32465 : static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
32466 : return x + y*(__pyx_t_float_complex)_Complex_I;
32467 : }
32468 : #endif
32469 : #else
32470 : static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
32471 : __pyx_t_float_complex z;
32472 0 : z.real = x;
32473 0 : z.imag = y;
32474 : return z;
32475 : }
32476 : #endif
32477 :
32478 : /* Arithmetic */
32479 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32480 : #else
32481 : static CYTHON_INLINE int __Pyx_c_eq_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32482 : return (a.real == b.real) && (a.imag == b.imag);
32483 : }
32484 0 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sum_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32485 0 : __pyx_t_float_complex z;
32486 0 : z.real = a.real + b.real;
32487 0 : z.imag = a.imag + b.imag;
32488 0 : return z;
32489 : }
32490 0 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_diff_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32491 0 : __pyx_t_float_complex z;
32492 0 : z.real = a.real - b.real;
32493 0 : z.imag = a.imag - b.imag;
32494 0 : return z;
32495 : }
32496 0 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_prod_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32497 0 : __pyx_t_float_complex z;
32498 0 : z.real = a.real * b.real - a.imag * b.imag;
32499 0 : z.imag = a.real * b.imag + a.imag * b.real;
32500 0 : return z;
32501 : }
32502 : #if 1
32503 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32504 : if (b.imag == 0) {
32505 : return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
32506 : } else if (fabsf(b.real) >= fabsf(b.imag)) {
32507 : if (b.real == 0 && b.imag == 0) {
32508 : return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.imag);
32509 : } else {
32510 : float r = b.imag / b.real;
32511 : float s = (float)(1.0) / (b.real + b.imag * r);
32512 : return __pyx_t_float_complex_from_parts(
32513 : (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
32514 : }
32515 : } else {
32516 : float r = b.real / b.imag;
32517 : float s = (float)(1.0) / (b.imag + b.real * r);
32518 : return __pyx_t_float_complex_from_parts(
32519 : (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
32520 : }
32521 : }
32522 : #else
32523 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quot_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32524 : if (b.imag == 0) {
32525 : return __pyx_t_float_complex_from_parts(a.real / b.real, a.imag / b.real);
32526 : } else {
32527 : float denom = b.real * b.real + b.imag * b.imag;
32528 : return __pyx_t_float_complex_from_parts(
32529 : (a.real * b.real + a.imag * b.imag) / denom,
32530 : (a.imag * b.real - a.real * b.imag) / denom);
32531 : }
32532 : }
32533 : #endif
32534 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_neg_float(__pyx_t_float_complex a) {
32535 : __pyx_t_float_complex z;
32536 : z.real = -a.real;
32537 : z.imag = -a.imag;
32538 : return z;
32539 : }
32540 : static CYTHON_INLINE int __Pyx_c_is_zero_float(__pyx_t_float_complex a) {
32541 : return (a.real == 0) && (a.imag == 0);
32542 : }
32543 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conj_float(__pyx_t_float_complex a) {
32544 : __pyx_t_float_complex z;
32545 : z.real = a.real;
32546 : z.imag = -a.imag;
32547 : return z;
32548 : }
32549 : #if 1
32550 : static CYTHON_INLINE float __Pyx_c_abs_float(__pyx_t_float_complex z) {
32551 : #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
32552 : return sqrtf(z.real*z.real + z.imag*z.imag);
32553 : #else
32554 : return hypotf(z.real, z.imag);
32555 : #endif
32556 : }
32557 : static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_pow_float(__pyx_t_float_complex a, __pyx_t_float_complex b) {
32558 : __pyx_t_float_complex z;
32559 : float r, lnr, theta, z_r, z_theta;
32560 : if (b.imag == 0 && b.real == (int)b.real) {
32561 : if (b.real < 0) {
32562 : float denom = a.real * a.real + a.imag * a.imag;
32563 : a.real = a.real / denom;
32564 : a.imag = -a.imag / denom;
32565 : b.real = -b.real;
32566 : }
32567 : switch ((int)b.real) {
32568 : case 0:
32569 : z.real = 1;
32570 : z.imag = 0;
32571 : return z;
32572 : case 1:
32573 : return a;
32574 : case 2:
32575 : return __Pyx_c_prod_float(a, a);
32576 : case 3:
32577 : z = __Pyx_c_prod_float(a, a);
32578 : return __Pyx_c_prod_float(z, a);
32579 : case 4:
32580 : z = __Pyx_c_prod_float(a, a);
32581 : return __Pyx_c_prod_float(z, z);
32582 : }
32583 : }
32584 : if (a.imag == 0) {
32585 : if (a.real == 0) {
32586 : return a;
32587 : } else if ((b.imag == 0) && (a.real >= 0)) {
32588 : z.real = powf(a.real, b.real);
32589 : z.imag = 0;
32590 : return z;
32591 : } else if (a.real > 0) {
32592 : r = a.real;
32593 : theta = 0;
32594 : } else {
32595 : r = -a.real;
32596 : theta = atan2f(0.0, -1.0);
32597 : }
32598 : } else {
32599 : r = __Pyx_c_abs_float(a);
32600 : theta = atan2f(a.imag, a.real);
32601 : }
32602 : lnr = logf(r);
32603 : z_r = expf(lnr * b.real - theta * b.imag);
32604 : z_theta = theta * b.real + lnr * b.imag;
32605 : z.real = z_r * cosf(z_theta);
32606 : z.imag = z_r * sinf(z_theta);
32607 : return z;
32608 : }
32609 : #endif
32610 : #endif
32611 :
32612 : /* Declarations */
32613 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32614 : #ifdef __cplusplus
32615 : static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
32616 : return ::std::complex< double >(x, y);
32617 : }
32618 : #else
32619 : static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
32620 : return x + y*(__pyx_t_double_complex)_Complex_I;
32621 : }
32622 : #endif
32623 : #else
32624 : static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, double y) {
32625 : __pyx_t_double_complex z;
32626 28 : z.real = x;
32627 28 : z.imag = y;
32628 : return z;
32629 : }
32630 : #endif
32631 :
32632 : /* Arithmetic */
32633 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32634 : #else
32635 : static CYTHON_INLINE int __Pyx_c_eq_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32636 : return (a.real == b.real) && (a.imag == b.imag);
32637 : }
32638 2568 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32639 2568 : __pyx_t_double_complex z;
32640 2568 : z.real = a.real + b.real;
32641 2568 : z.imag = a.imag + b.imag;
32642 2568 : return z;
32643 : }
32644 2568 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32645 2568 : __pyx_t_double_complex z;
32646 2568 : z.real = a.real - b.real;
32647 2568 : z.imag = a.imag - b.imag;
32648 2568 : return z;
32649 : }
32650 3472 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_prod_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32651 3472 : __pyx_t_double_complex z;
32652 3472 : z.real = a.real * b.real - a.imag * b.imag;
32653 3472 : z.imag = a.real * b.imag + a.imag * b.real;
32654 3472 : return z;
32655 : }
32656 : #if 1
32657 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32658 : if (b.imag == 0) {
32659 : return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
32660 : } else if (fabs(b.real) >= fabs(b.imag)) {
32661 : if (b.real == 0 && b.imag == 0) {
32662 : return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
32663 : } else {
32664 : double r = b.imag / b.real;
32665 : double s = (double)(1.0) / (b.real + b.imag * r);
32666 : return __pyx_t_double_complex_from_parts(
32667 : (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
32668 : }
32669 : } else {
32670 : double r = b.real / b.imag;
32671 : double s = (double)(1.0) / (b.imag + b.real * r);
32672 : return __pyx_t_double_complex_from_parts(
32673 : (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
32674 : }
32675 : }
32676 : #else
32677 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32678 : if (b.imag == 0) {
32679 : return __pyx_t_double_complex_from_parts(a.real / b.real, a.imag / b.real);
32680 : } else {
32681 : double denom = b.real * b.real + b.imag * b.imag;
32682 : return __pyx_t_double_complex_from_parts(
32683 : (a.real * b.real + a.imag * b.imag) / denom,
32684 : (a.imag * b.real - a.real * b.imag) / denom);
32685 : }
32686 : }
32687 : #endif
32688 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg_double(__pyx_t_double_complex a) {
32689 : __pyx_t_double_complex z;
32690 : z.real = -a.real;
32691 : z.imag = -a.imag;
32692 : return z;
32693 : }
32694 : static CYTHON_INLINE int __Pyx_c_is_zero_double(__pyx_t_double_complex a) {
32695 : return (a.real == 0) && (a.imag == 0);
32696 : }
32697 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj_double(__pyx_t_double_complex a) {
32698 : __pyx_t_double_complex z;
32699 : z.real = a.real;
32700 : z.imag = -a.imag;
32701 : return z;
32702 : }
32703 : #if 1
32704 : static CYTHON_INLINE double __Pyx_c_abs_double(__pyx_t_double_complex z) {
32705 : #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
32706 : return sqrt(z.real*z.real + z.imag*z.imag);
32707 : #else
32708 : return hypot(z.real, z.imag);
32709 : #endif
32710 : }
32711 : static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow_double(__pyx_t_double_complex a, __pyx_t_double_complex b) {
32712 : __pyx_t_double_complex z;
32713 : double r, lnr, theta, z_r, z_theta;
32714 : if (b.imag == 0 && b.real == (int)b.real) {
32715 : if (b.real < 0) {
32716 : double denom = a.real * a.real + a.imag * a.imag;
32717 : a.real = a.real / denom;
32718 : a.imag = -a.imag / denom;
32719 : b.real = -b.real;
32720 : }
32721 : switch ((int)b.real) {
32722 : case 0:
32723 : z.real = 1;
32724 : z.imag = 0;
32725 : return z;
32726 : case 1:
32727 : return a;
32728 : case 2:
32729 : return __Pyx_c_prod_double(a, a);
32730 : case 3:
32731 : z = __Pyx_c_prod_double(a, a);
32732 : return __Pyx_c_prod_double(z, a);
32733 : case 4:
32734 : z = __Pyx_c_prod_double(a, a);
32735 : return __Pyx_c_prod_double(z, z);
32736 : }
32737 : }
32738 : if (a.imag == 0) {
32739 : if (a.real == 0) {
32740 : return a;
32741 : } else if ((b.imag == 0) && (a.real >= 0)) {
32742 : z.real = pow(a.real, b.real);
32743 : z.imag = 0;
32744 : return z;
32745 : } else if (a.real > 0) {
32746 : r = a.real;
32747 : theta = 0;
32748 : } else {
32749 : r = -a.real;
32750 : theta = atan2(0.0, -1.0);
32751 : }
32752 : } else {
32753 : r = __Pyx_c_abs_double(a);
32754 : theta = atan2(a.imag, a.real);
32755 : }
32756 : lnr = log(r);
32757 : z_r = exp(lnr * b.real - theta * b.imag);
32758 : z_theta = theta * b.real + lnr * b.imag;
32759 : z.real = z_r * cos(z_theta);
32760 : z.imag = z_r * sin(z_theta);
32761 : return z;
32762 : }
32763 : #endif
32764 : #endif
32765 :
32766 : /* Declarations */
32767 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32768 : #ifdef __cplusplus
32769 : static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
32770 : return ::std::complex< long double >(x, y);
32771 : }
32772 : #else
32773 : static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
32774 : return x + y*(__pyx_t_long_double_complex)_Complex_I;
32775 : }
32776 : #endif
32777 : #else
32778 : static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) {
32779 : __pyx_t_long_double_complex z;
32780 0 : z.real = x;
32781 0 : z.imag = y;
32782 0 : return z;
32783 : }
32784 : #endif
32785 :
32786 : /* Arithmetic */
32787 : #if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus)
32788 : #else
32789 : static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32790 : return (a.real == b.real) && (a.imag == b.imag);
32791 : }
32792 0 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32793 0 : __pyx_t_long_double_complex z;
32794 0 : z.real = a.real + b.real;
32795 0 : z.imag = a.imag + b.imag;
32796 0 : return z;
32797 : }
32798 0 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32799 0 : __pyx_t_long_double_complex z;
32800 0 : z.real = a.real - b.real;
32801 0 : z.imag = a.imag - b.imag;
32802 0 : return z;
32803 : }
32804 0 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32805 0 : __pyx_t_long_double_complex z;
32806 0 : z.real = a.real * b.real - a.imag * b.imag;
32807 0 : z.imag = a.real * b.imag + a.imag * b.real;
32808 0 : return z;
32809 : }
32810 : #if 1
32811 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32812 : if (b.imag == 0) {
32813 : return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
32814 : } else if (fabsl(b.real) >= fabsl(b.imag)) {
32815 : if (b.real == 0 && b.imag == 0) {
32816 : return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag);
32817 : } else {
32818 : long double r = b.imag / b.real;
32819 : long double s = (long double)(1.0) / (b.real + b.imag * r);
32820 : return __pyx_t_long_double_complex_from_parts(
32821 : (a.real + a.imag * r) * s, (a.imag - a.real * r) * s);
32822 : }
32823 : } else {
32824 : long double r = b.real / b.imag;
32825 : long double s = (long double)(1.0) / (b.imag + b.real * r);
32826 : return __pyx_t_long_double_complex_from_parts(
32827 : (a.real * r + a.imag) * s, (a.imag * r - a.real) * s);
32828 : }
32829 : }
32830 : #else
32831 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32832 : if (b.imag == 0) {
32833 : return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real);
32834 : } else {
32835 : long double denom = b.real * b.real + b.imag * b.imag;
32836 : return __pyx_t_long_double_complex_from_parts(
32837 : (a.real * b.real + a.imag * b.imag) / denom,
32838 : (a.imag * b.real - a.real * b.imag) / denom);
32839 : }
32840 : }
32841 : #endif
32842 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) {
32843 : __pyx_t_long_double_complex z;
32844 : z.real = -a.real;
32845 : z.imag = -a.imag;
32846 : return z;
32847 : }
32848 : static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) {
32849 : return (a.real == 0) && (a.imag == 0);
32850 : }
32851 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) {
32852 : __pyx_t_long_double_complex z;
32853 : z.real = a.real;
32854 : z.imag = -a.imag;
32855 : return z;
32856 : }
32857 : #if 1
32858 : static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) {
32859 : #if !defined(HAVE_HYPOT) || defined(_MSC_VER)
32860 : return sqrtl(z.real*z.real + z.imag*z.imag);
32861 : #else
32862 : return hypotl(z.real, z.imag);
32863 : #endif
32864 : }
32865 : static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) {
32866 : __pyx_t_long_double_complex z;
32867 : long double r, lnr, theta, z_r, z_theta;
32868 : if (b.imag == 0 && b.real == (int)b.real) {
32869 : if (b.real < 0) {
32870 : long double denom = a.real * a.real + a.imag * a.imag;
32871 : a.real = a.real / denom;
32872 : a.imag = -a.imag / denom;
32873 : b.real = -b.real;
32874 : }
32875 : switch ((int)b.real) {
32876 : case 0:
32877 : z.real = 1;
32878 : z.imag = 0;
32879 : return z;
32880 : case 1:
32881 : return a;
32882 : case 2:
32883 : return __Pyx_c_prod_long__double(a, a);
32884 : case 3:
32885 : z = __Pyx_c_prod_long__double(a, a);
32886 : return __Pyx_c_prod_long__double(z, a);
32887 : case 4:
32888 : z = __Pyx_c_prod_long__double(a, a);
32889 : return __Pyx_c_prod_long__double(z, z);
32890 : }
32891 : }
32892 : if (a.imag == 0) {
32893 : if (a.real == 0) {
32894 : return a;
32895 : } else if ((b.imag == 0) && (a.real >= 0)) {
32896 : z.real = powl(a.real, b.real);
32897 : z.imag = 0;
32898 : return z;
32899 : } else if (a.real > 0) {
32900 : r = a.real;
32901 : theta = 0;
32902 : } else {
32903 : r = -a.real;
32904 : theta = atan2l(0.0, -1.0);
32905 : }
32906 : } else {
32907 : r = __Pyx_c_abs_long__double(a);
32908 : theta = atan2l(a.imag, a.real);
32909 : }
32910 : lnr = logl(r);
32911 : z_r = expl(lnr * b.real - theta * b.imag);
32912 : z_theta = theta * b.real + lnr * b.imag;
32913 : z.real = z_r * cosl(z_theta);
32914 : z.imag = z_r * sinl(z_theta);
32915 : return z;
32916 : }
32917 : #endif
32918 : #endif
32919 :
32920 : #if PY_MAJOR_VERSION < 3
32921 : static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) {
32922 : __Pyx_TypeName obj_type_name;
32923 : if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags);
32924 : if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags);
32925 : if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags);
32926 : obj_type_name = __Pyx_PyType_GetName(Py_TYPE(obj));
32927 : PyErr_Format(PyExc_TypeError,
32928 : "'" __Pyx_FMT_TYPENAME "' does not have the buffer interface",
32929 : obj_type_name);
32930 : __Pyx_DECREF_TypeName(obj_type_name);
32931 : return -1;
32932 : }
32933 : static void __Pyx_ReleaseBuffer(Py_buffer *view) {
32934 : PyObject *obj = view->obj;
32935 : if (!obj) return;
32936 : if (PyObject_CheckBuffer(obj)) {
32937 : PyBuffer_Release(view);
32938 : return;
32939 : }
32940 : if ((0)) {}
32941 : view->obj = NULL;
32942 : Py_DECREF(obj);
32943 : }
32944 : #endif
32945 :
32946 :
32947 : /* MemviewSliceIsContig */
32948 : static int
32949 0 : __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim)
32950 : {
32951 0 : int i, index, step, start;
32952 0 : Py_ssize_t itemsize = mvs.memview->view.itemsize;
32953 0 : if (order == 'F') {
32954 : step = 1;
32955 : start = 0;
32956 : } else {
32957 0 : step = -1;
32958 0 : start = ndim - 1;
32959 : }
32960 0 : for (i = 0; i < ndim; i++) {
32961 0 : index = start + step * i;
32962 0 : if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize)
32963 : return 0;
32964 0 : itemsize *= mvs.shape[index];
32965 : }
32966 : return 1;
32967 : }
32968 :
32969 : /* OverlappingSlices */
32970 : static void
32971 0 : __pyx_get_array_memory_extents(__Pyx_memviewslice *slice,
32972 : void **out_start, void **out_end,
32973 : int ndim, size_t itemsize)
32974 : {
32975 0 : char *start, *end;
32976 0 : int i;
32977 0 : start = end = slice->data;
32978 0 : for (i = 0; i < ndim; i++) {
32979 0 : Py_ssize_t stride = slice->strides[i];
32980 0 : Py_ssize_t extent = slice->shape[i];
32981 0 : if (extent == 0) {
32982 0 : *out_start = *out_end = start;
32983 0 : return;
32984 : } else {
32985 0 : if (stride > 0)
32986 0 : end += stride * (extent - 1);
32987 : else
32988 0 : start += stride * (extent - 1);
32989 : }
32990 : }
32991 0 : *out_start = start;
32992 0 : *out_end = end + itemsize;
32993 : }
32994 : static int
32995 0 : __pyx_slices_overlap(__Pyx_memviewslice *slice1,
32996 : __Pyx_memviewslice *slice2,
32997 : int ndim, size_t itemsize)
32998 : {
32999 0 : void *start1, *end1, *start2, *end2;
33000 0 : __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize);
33001 0 : __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize);
33002 0 : return (start1 < end2) && (start2 < end1);
33003 : }
33004 :
33005 : /* IsLittleEndian */
33006 0 : static CYTHON_INLINE int __Pyx_Is_Little_Endian(void)
33007 : {
33008 0 : union {
33009 : uint32_t u32;
33010 : uint8_t u8[4];
33011 : } S;
33012 0 : S.u32 = 0x01020304;
33013 0 : return S.u8[0] == 4;
33014 : }
33015 :
33016 : /* BufferFormatCheck */
33017 405 : static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx,
33018 : __Pyx_BufFmt_StackElem* stack,
33019 : __Pyx_TypeInfo* type) {
33020 405 : stack[0].field = &ctx->root;
33021 405 : stack[0].parent_offset = 0;
33022 405 : ctx->root.type = type;
33023 405 : ctx->root.name = "buffer dtype";
33024 405 : ctx->root.offset = 0;
33025 405 : ctx->head = stack;
33026 405 : ctx->head->field = &ctx->root;
33027 405 : ctx->fmt_offset = 0;
33028 405 : ctx->head->parent_offset = 0;
33029 405 : ctx->new_packmode = '@';
33030 405 : ctx->enc_packmode = '@';
33031 405 : ctx->new_count = 1;
33032 405 : ctx->enc_count = 0;
33033 405 : ctx->enc_type = 0;
33034 405 : ctx->is_complex = 0;
33035 405 : ctx->is_valid_array = 0;
33036 405 : ctx->struct_alignment = 0;
33037 405 : while (type->typegroup == 'S') {
33038 0 : ++ctx->head;
33039 0 : ctx->head->field = type->fields;
33040 0 : ctx->head->parent_offset = 0;
33041 0 : type = type->fields->type;
33042 : }
33043 405 : }
33044 0 : static int __Pyx_BufFmt_ParseNumber(const char** ts) {
33045 0 : int count;
33046 0 : const char* t = *ts;
33047 0 : if (*t < '0' || *t > '9') {
33048 : return -1;
33049 : } else {
33050 0 : count = *t++ - '0';
33051 0 : while (*t >= '0' && *t <= '9') {
33052 0 : count *= 10;
33053 0 : count += *t++ - '0';
33054 : }
33055 : }
33056 0 : *ts = t;
33057 0 : return count;
33058 : }
33059 0 : static int __Pyx_BufFmt_ExpectNumber(const char **ts) {
33060 0 : int number = __Pyx_BufFmt_ParseNumber(ts);
33061 0 : if (number == -1)
33062 0 : PyErr_Format(PyExc_ValueError,\
33063 0 : "Does not understand character buffer dtype format string ('%c')", **ts);
33064 0 : return number;
33065 : }
33066 0 : static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) {
33067 0 : PyErr_Format(PyExc_ValueError,
33068 : "Unexpected format string character: '%c'", ch);
33069 : }
33070 2 : static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) {
33071 2 : switch (ch) {
33072 : case '?': return "'bool'";
33073 0 : case 'c': return "'char'";
33074 0 : case 'b': return "'signed char'";
33075 0 : case 'B': return "'unsigned char'";
33076 0 : case 'h': return "'short'";
33077 0 : case 'H': return "'unsigned short'";
33078 0 : case 'i': return "'int'";
33079 0 : case 'I': return "'unsigned int'";
33080 0 : case 'l': return "'long'";
33081 0 : case 'L': return "'unsigned long'";
33082 0 : case 'q': return "'long long'";
33083 0 : case 'Q': return "'unsigned long long'";
33084 0 : case 'f': return (is_complex ? "'complex float'" : "'float'");
33085 0 : case 'd': return (is_complex ? "'complex double'" : "'double'");
33086 0 : case 'g': return (is_complex ? "'complex long double'" : "'long double'");
33087 0 : case 'T': return "a struct";
33088 2 : case 'O': return "Python object";
33089 0 : case 'P': return "a pointer";
33090 0 : case 's': case 'p': return "a string";
33091 0 : case 0: return "end";
33092 0 : default: return "unparsable format string";
33093 : }
33094 : }
33095 0 : static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) {
33096 0 : switch (ch) {
33097 : case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
33098 0 : case 'h': case 'H': return 2;
33099 : case 'i': case 'I': case 'l': case 'L': return 4;
33100 : case 'q': case 'Q': return 8;
33101 0 : case 'f': return (is_complex ? 8 : 4);
33102 0 : case 'd': return (is_complex ? 16 : 8);
33103 0 : case 'g': {
33104 0 : PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g')..");
33105 0 : return 0;
33106 : }
33107 : case 'O': case 'P': return sizeof(void*);
33108 0 : default:
33109 0 : __Pyx_BufFmt_RaiseUnexpectedChar(ch);
33110 0 : return 0;
33111 : }
33112 : }
33113 405 : static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) {
33114 405 : switch (ch) {
33115 : case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
33116 0 : case 'h': case 'H': return sizeof(short);
33117 : case 'i': case 'I': return sizeof(int);
33118 : case 'l': case 'L': return sizeof(long);
33119 : #ifdef HAVE_LONG_LONG
33120 : case 'q': case 'Q': return sizeof(PY_LONG_LONG);
33121 : #endif
33122 48 : case 'f': return sizeof(float) * (is_complex ? 2 : 1);
33123 351 : case 'd': return sizeof(double) * (is_complex ? 2 : 1);
33124 0 : case 'g': return sizeof(long double) * (is_complex ? 2 : 1);
33125 : case 'O': case 'P': return sizeof(void*);
33126 0 : default: {
33127 0 : __Pyx_BufFmt_RaiseUnexpectedChar(ch);
33128 0 : return 0;
33129 : }
33130 : }
33131 : }
33132 : typedef struct { char c; short x; } __Pyx_st_short;
33133 : typedef struct { char c; int x; } __Pyx_st_int;
33134 : typedef struct { char c; long x; } __Pyx_st_long;
33135 : typedef struct { char c; float x; } __Pyx_st_float;
33136 : typedef struct { char c; double x; } __Pyx_st_double;
33137 : typedef struct { char c; long double x; } __Pyx_st_longdouble;
33138 : typedef struct { char c; void *x; } __Pyx_st_void_p;
33139 : #ifdef HAVE_LONG_LONG
33140 : typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong;
33141 : #endif
33142 405 : static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, int is_complex) {
33143 405 : CYTHON_UNUSED_VAR(is_complex);
33144 405 : switch (ch) {
33145 : case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
33146 0 : case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short);
33147 : case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int);
33148 : case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long);
33149 : #ifdef HAVE_LONG_LONG
33150 : case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG);
33151 : #endif
33152 : case 'f': return sizeof(__Pyx_st_float) - sizeof(float);
33153 : case 'd': return sizeof(__Pyx_st_double) - sizeof(double);
33154 0 : case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double);
33155 : case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*);
33156 0 : default:
33157 0 : __Pyx_BufFmt_RaiseUnexpectedChar(ch);
33158 0 : return 0;
33159 : }
33160 : }
33161 : /* These are for computing the padding at the end of the struct to align
33162 : on the first member of the struct. This will probably the same as above,
33163 : but we don't have any guarantees.
33164 : */
33165 : typedef struct { short x; char c; } __Pyx_pad_short;
33166 : typedef struct { int x; char c; } __Pyx_pad_int;
33167 : typedef struct { long x; char c; } __Pyx_pad_long;
33168 : typedef struct { float x; char c; } __Pyx_pad_float;
33169 : typedef struct { double x; char c; } __Pyx_pad_double;
33170 : typedef struct { long double x; char c; } __Pyx_pad_longdouble;
33171 : typedef struct { void *x; char c; } __Pyx_pad_void_p;
33172 : #ifdef HAVE_LONG_LONG
33173 : typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong;
33174 : #endif
33175 405 : static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, int is_complex) {
33176 405 : CYTHON_UNUSED_VAR(is_complex);
33177 405 : switch (ch) {
33178 : case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1;
33179 0 : case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short);
33180 : case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int);
33181 : case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long);
33182 : #ifdef HAVE_LONG_LONG
33183 : case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG);
33184 : #endif
33185 : case 'f': return sizeof(__Pyx_pad_float) - sizeof(float);
33186 : case 'd': return sizeof(__Pyx_pad_double) - sizeof(double);
33187 0 : case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double);
33188 : case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*);
33189 0 : default:
33190 0 : __Pyx_BufFmt_RaiseUnexpectedChar(ch);
33191 0 : return 0;
33192 : }
33193 : }
33194 405 : static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) {
33195 405 : switch (ch) {
33196 : case 'c':
33197 : return 'H';
33198 0 : case 'b': case 'h': case 'i':
33199 : case 'l': case 'q': case 's': case 'p':
33200 0 : return 'I';
33201 0 : case '?': case 'B': case 'H': case 'I': case 'L': case 'Q':
33202 0 : return 'U';
33203 399 : case 'f': case 'd': case 'g':
33204 399 : return (is_complex ? 'C' : 'R');
33205 6 : case 'O':
33206 6 : return 'O';
33207 0 : case 'P':
33208 0 : return 'P';
33209 0 : default: {
33210 0 : __Pyx_BufFmt_RaiseUnexpectedChar(ch);
33211 0 : return 0;
33212 : }
33213 : }
33214 : }
33215 2 : static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) {
33216 4 : if (ctx->head == NULL || ctx->head->field == &ctx->root) {
33217 2 : const char* expected;
33218 2 : const char* quote;
33219 2 : if (ctx->head == NULL) {
33220 : expected = "end";
33221 : quote = "";
33222 : } else {
33223 2 : expected = ctx->head->field->type->name;
33224 2 : quote = "'";
33225 : }
33226 2 : PyErr_Format(PyExc_ValueError,
33227 : "Buffer dtype mismatch, expected %s%s%s but got %s",
33228 : quote, expected, quote,
33229 2 : __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex));
33230 : } else {
33231 0 : __Pyx_StructField* field = ctx->head->field;
33232 0 : __Pyx_StructField* parent = (ctx->head - 1)->field;
33233 0 : PyErr_Format(PyExc_ValueError,
33234 : "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'",
33235 0 : field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex),
33236 0 : parent->type->name, field->name);
33237 : }
33238 2 : }
33239 810 : static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) {
33240 810 : char group;
33241 810 : size_t size, offset, arraysize = 1;
33242 810 : if (ctx->enc_type == 0) return 0;
33243 405 : if (ctx->head->field->type->arraysize[0]) {
33244 0 : int i, ndim = 0;
33245 0 : if (ctx->enc_type == 's' || ctx->enc_type == 'p') {
33246 0 : ctx->is_valid_array = ctx->head->field->type->ndim == 1;
33247 0 : ndim = 1;
33248 0 : if (ctx->enc_count != ctx->head->field->type->arraysize[0]) {
33249 0 : PyErr_Format(PyExc_ValueError,
33250 : "Expected a dimension of size %zu, got %zu",
33251 : ctx->head->field->type->arraysize[0], ctx->enc_count);
33252 0 : return -1;
33253 : }
33254 : }
33255 0 : if (!ctx->is_valid_array) {
33256 0 : PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d",
33257 : ctx->head->field->type->ndim, ndim);
33258 0 : return -1;
33259 : }
33260 0 : for (i = 0; i < ctx->head->field->type->ndim; i++) {
33261 0 : arraysize *= ctx->head->field->type->arraysize[i];
33262 : }
33263 0 : ctx->is_valid_array = 0;
33264 0 : ctx->enc_count = 1;
33265 : }
33266 405 : group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex);
33267 405 : do {
33268 405 : __Pyx_StructField* field = ctx->head->field;
33269 405 : __Pyx_TypeInfo* type = field->type;
33270 405 : if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') {
33271 405 : size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex);
33272 : } else {
33273 0 : size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex);
33274 : }
33275 405 : if (ctx->enc_packmode == '@') {
33276 405 : size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex);
33277 405 : size_t align_mod_offset;
33278 405 : if (align_at == 0) return -1;
33279 405 : align_mod_offset = ctx->fmt_offset % align_at;
33280 405 : if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset;
33281 405 : if (ctx->struct_alignment == 0)
33282 405 : ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type,
33283 : ctx->is_complex);
33284 : }
33285 405 : if (type->size != size || type->typegroup != group) {
33286 2 : if (type->typegroup == 'C' && type->fields != NULL) {
33287 0 : size_t parent_offset = ctx->head->parent_offset + field->offset;
33288 0 : ++ctx->head;
33289 0 : ctx->head->field = type->fields;
33290 0 : ctx->head->parent_offset = parent_offset;
33291 0 : continue;
33292 : }
33293 2 : if ((type->typegroup == 'H' || group == 'H') && type->size == size) {
33294 : } else {
33295 2 : __Pyx_BufFmt_RaiseExpected(ctx);
33296 2 : return -1;
33297 : }
33298 : }
33299 403 : offset = ctx->head->parent_offset + field->offset;
33300 403 : if (ctx->fmt_offset != offset) {
33301 0 : PyErr_Format(PyExc_ValueError,
33302 : "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected",
33303 : (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset);
33304 0 : return -1;
33305 : }
33306 403 : ctx->fmt_offset += size;
33307 403 : if (arraysize)
33308 403 : ctx->fmt_offset += (arraysize - 1) * size;
33309 403 : --ctx->enc_count;
33310 403 : while (1) {
33311 403 : if (field == &ctx->root) {
33312 403 : ctx->head = NULL;
33313 403 : if (ctx->enc_count != 0) {
33314 0 : __Pyx_BufFmt_RaiseExpected(ctx);
33315 0 : return -1;
33316 : }
33317 : break;
33318 : }
33319 0 : ctx->head->field = ++field;
33320 0 : if (field->type == NULL) {
33321 0 : --ctx->head;
33322 0 : field = ctx->head->field;
33323 0 : continue;
33324 0 : } else if (field->type->typegroup == 'S') {
33325 0 : size_t parent_offset = ctx->head->parent_offset + field->offset;
33326 0 : if (field->type->fields->type == NULL) continue;
33327 0 : field = field->type->fields;
33328 0 : ++ctx->head;
33329 0 : ctx->head->field = field;
33330 0 : ctx->head->parent_offset = parent_offset;
33331 0 : break;
33332 : } else {
33333 : break;
33334 : }
33335 : }
33336 403 : } while (ctx->enc_count);
33337 403 : ctx->enc_type = 0;
33338 403 : ctx->is_complex = 0;
33339 403 : return 0;
33340 : }
33341 : static int
33342 0 : __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp)
33343 : {
33344 0 : const char *ts = *tsp;
33345 0 : int i = 0, number, ndim;
33346 0 : ++ts;
33347 0 : if (ctx->new_count != 1) {
33348 0 : PyErr_SetString(PyExc_ValueError,
33349 : "Cannot handle repeated arrays in format string");
33350 0 : return -1;
33351 : }
33352 0 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return -1;
33353 0 : ndim = ctx->head->field->type->ndim;
33354 0 : while (*ts && *ts != ')') {
33355 0 : switch (*ts) {
33356 0 : case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue;
33357 0 : default: break;
33358 : }
33359 0 : number = __Pyx_BufFmt_ExpectNumber(&ts);
33360 0 : if (number == -1) return -1;
33361 0 : if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) {
33362 0 : PyErr_Format(PyExc_ValueError,
33363 : "Expected a dimension of size %zu, got %d",
33364 : ctx->head->field->type->arraysize[i], number);
33365 0 : return -1;
33366 : }
33367 0 : if (*ts != ',' && *ts != ')') {
33368 0 : PyErr_Format(PyExc_ValueError,
33369 : "Expected a comma in format string, got '%c'", *ts);
33370 0 : return -1;
33371 : }
33372 0 : if (*ts == ',') ts++;
33373 0 : i++;
33374 : }
33375 0 : if (i != ndim) {
33376 0 : PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d",
33377 0 : ctx->head->field->type->ndim, i);
33378 0 : return -1;
33379 : }
33380 0 : if (!*ts) {
33381 0 : PyErr_SetString(PyExc_ValueError,
33382 : "Unexpected end of format string, expected ')'");
33383 0 : return -1;
33384 : }
33385 0 : ctx->is_valid_array = 1;
33386 0 : ctx->new_count = 1;
33387 0 : *tsp = ++ts;
33388 0 : return 0;
33389 : }
33390 405 : static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) {
33391 405 : int got_Z = 0;
33392 810 : while (1) {
33393 810 : switch(*ts) {
33394 405 : case 0:
33395 405 : if (ctx->enc_type != 0 && ctx->head == NULL) {
33396 0 : __Pyx_BufFmt_RaiseExpected(ctx);
33397 0 : return NULL;
33398 : }
33399 405 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
33400 403 : if (ctx->head != NULL) {
33401 0 : __Pyx_BufFmt_RaiseExpected(ctx);
33402 0 : return NULL;
33403 : }
33404 : return ts;
33405 0 : case ' ':
33406 : case '\r':
33407 : case '\n':
33408 0 : ++ts;
33409 0 : break;
33410 : case '<':
33411 0 : if (!__Pyx_Is_Little_Endian()) {
33412 : PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler");
33413 : return NULL;
33414 : }
33415 0 : ctx->new_packmode = '=';
33416 0 : ++ts;
33417 0 : break;
33418 : case '>':
33419 : case '!':
33420 0 : if (__Pyx_Is_Little_Endian()) {
33421 0 : PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler");
33422 0 : return NULL;
33423 : }
33424 : ctx->new_packmode = '=';
33425 : ++ts;
33426 : break;
33427 0 : case '=':
33428 : case '@':
33429 : case '^':
33430 0 : ctx->new_packmode = *ts++;
33431 0 : break;
33432 0 : case 'T':
33433 : {
33434 0 : const char* ts_after_sub;
33435 0 : size_t i, struct_count = ctx->new_count;
33436 0 : size_t struct_alignment = ctx->struct_alignment;
33437 0 : ctx->new_count = 1;
33438 0 : ++ts;
33439 0 : if (*ts != '{') {
33440 0 : PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'");
33441 0 : return NULL;
33442 : }
33443 0 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
33444 0 : ctx->enc_type = 0;
33445 0 : ctx->enc_count = 0;
33446 0 : ctx->struct_alignment = 0;
33447 0 : ++ts;
33448 0 : ts_after_sub = ts;
33449 0 : for (i = 0; i != struct_count; ++i) {
33450 0 : ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts);
33451 0 : if (!ts_after_sub) return NULL;
33452 : }
33453 0 : ts = ts_after_sub;
33454 0 : if (struct_alignment) ctx->struct_alignment = struct_alignment;
33455 : }
33456 : break;
33457 0 : case '}':
33458 : {
33459 0 : size_t alignment = ctx->struct_alignment;
33460 0 : ++ts;
33461 0 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
33462 0 : ctx->enc_type = 0;
33463 0 : if (alignment && ctx->fmt_offset % alignment) {
33464 0 : ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment);
33465 : }
33466 : }
33467 : return ts;
33468 0 : case 'x':
33469 0 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
33470 0 : ctx->fmt_offset += ctx->new_count;
33471 0 : ctx->new_count = 1;
33472 0 : ctx->enc_count = 0;
33473 0 : ctx->enc_type = 0;
33474 0 : ctx->enc_packmode = ctx->new_packmode;
33475 0 : ++ts;
33476 0 : break;
33477 84 : case 'Z':
33478 84 : got_Z = 1;
33479 84 : ++ts;
33480 84 : if (*ts != 'f' && *ts != 'd' && *ts != 'g') {
33481 0 : __Pyx_BufFmt_RaiseUnexpectedChar('Z');
33482 0 : return NULL;
33483 : }
33484 405 : CYTHON_FALLTHROUGH;
33485 : case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I':
33486 : case 'l': case 'L': case 'q': case 'Q':
33487 : case 'f': case 'd': case 'g':
33488 : case 'O': case 'p':
33489 405 : if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) &&
33490 0 : (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) {
33491 0 : ctx->enc_count += ctx->new_count;
33492 0 : ctx->new_count = 1;
33493 0 : got_Z = 0;
33494 0 : ++ts;
33495 0 : break;
33496 : }
33497 405 : CYTHON_FALLTHROUGH;
33498 : case 's':
33499 405 : if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL;
33500 405 : ctx->enc_count = ctx->new_count;
33501 405 : ctx->enc_packmode = ctx->new_packmode;
33502 405 : ctx->enc_type = *ts;
33503 405 : ctx->is_complex = got_Z;
33504 405 : ++ts;
33505 405 : ctx->new_count = 1;
33506 405 : got_Z = 0;
33507 405 : break;
33508 0 : case ':':
33509 0 : ++ts;
33510 0 : while(*ts != ':') ++ts;
33511 0 : ++ts;
33512 0 : break;
33513 0 : case '(':
33514 0 : if (__pyx_buffmt_parse_array(ctx, &ts) < 0) return NULL;
33515 : break;
33516 0 : default:
33517 : {
33518 0 : int number = __Pyx_BufFmt_ExpectNumber(&ts);
33519 0 : if (number == -1) return NULL;
33520 0 : ctx->new_count = (size_t)number;
33521 : }
33522 : }
33523 : }
33524 : }
33525 :
33526 : /* TypeInfoCompare */
33527 : static int
33528 3 : __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b)
33529 : {
33530 3 : int i;
33531 3 : if (!a || !b)
33532 : return 0;
33533 3 : if (a == b)
33534 : return 1;
33535 0 : if (a->size != b->size || a->typegroup != b->typegroup ||
33536 0 : a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) {
33537 0 : if (a->typegroup == 'H' || b->typegroup == 'H') {
33538 0 : return a->size == b->size;
33539 : } else {
33540 : return 0;
33541 : }
33542 : }
33543 0 : if (a->ndim) {
33544 0 : for (i = 0; i < a->ndim; i++)
33545 0 : if (a->arraysize[i] != b->arraysize[i])
33546 : return 0;
33547 : }
33548 0 : if (a->typegroup == 'S') {
33549 0 : if (a->flags != b->flags)
33550 : return 0;
33551 0 : if (a->fields || b->fields) {
33552 0 : if (!(a->fields && b->fields))
33553 : return 0;
33554 0 : for (i = 0; a->fields[i].type && b->fields[i].type; i++) {
33555 0 : __Pyx_StructField *field_a = a->fields + i;
33556 0 : __Pyx_StructField *field_b = b->fields + i;
33557 0 : if (field_a->offset != field_b->offset ||
33558 0 : !__pyx_typeinfo_cmp(field_a->type, field_b->type))
33559 0 : return 0;
33560 : }
33561 0 : return !a->fields[i].type && !b->fields[i].type;
33562 : }
33563 : }
33564 : return 1;
33565 : }
33566 :
33567 : /* MemviewSliceValidateAndInit */
33568 : static int
33569 947 : __pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec)
33570 : {
33571 947 : if (buf->shape[dim] <= 1)
33572 : return 1;
33573 630 : if (buf->strides) {
33574 630 : if (spec & __Pyx_MEMVIEW_CONTIG) {
33575 406 : if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) {
33576 0 : if (unlikely(buf->strides[dim] != sizeof(void *))) {
33577 0 : PyErr_Format(PyExc_ValueError,
33578 : "Buffer is not indirectly contiguous "
33579 : "in dimension %d.", dim);
33580 0 : goto fail;
33581 : }
33582 406 : } else if (unlikely(buf->strides[dim] != buf->itemsize)) {
33583 0 : PyErr_SetString(PyExc_ValueError,
33584 : "Buffer and memoryview are not contiguous "
33585 : "in the same dimension.");
33586 0 : goto fail;
33587 : }
33588 : }
33589 630 : if (spec & __Pyx_MEMVIEW_FOLLOW) {
33590 224 : Py_ssize_t stride = buf->strides[dim];
33591 224 : if (stride < 0)
33592 : stride = -stride;
33593 224 : if (unlikely(stride < buf->itemsize)) {
33594 0 : PyErr_SetString(PyExc_ValueError,
33595 : "Buffer and memoryview are not contiguous "
33596 : "in the same dimension.");
33597 0 : goto fail;
33598 : }
33599 : }
33600 : } else {
33601 0 : if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) {
33602 0 : PyErr_Format(PyExc_ValueError,
33603 : "C-contiguous buffer is not contiguous in "
33604 : "dimension %d", dim);
33605 0 : goto fail;
33606 0 : } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) {
33607 0 : PyErr_Format(PyExc_ValueError,
33608 : "C-contiguous buffer is not indirect in "
33609 : "dimension %d", dim);
33610 0 : goto fail;
33611 0 : } else if (unlikely(buf->suboffsets)) {
33612 0 : PyErr_SetString(PyExc_ValueError,
33613 : "Buffer exposes suboffsets but no strides");
33614 0 : goto fail;
33615 : }
33616 : }
33617 : return 1;
33618 : fail:
33619 : return 0;
33620 : }
33621 : static int
33622 947 : __pyx_check_suboffsets(Py_buffer *buf, int dim, int ndim, int spec)
33623 : {
33624 947 : CYTHON_UNUSED_VAR(ndim);
33625 947 : if (spec & __Pyx_MEMVIEW_DIRECT) {
33626 947 : if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) {
33627 0 : PyErr_Format(PyExc_ValueError,
33628 : "Buffer not compatible with direct access "
33629 : "in dimension %d.", dim);
33630 0 : goto fail;
33631 : }
33632 : }
33633 947 : if (spec & __Pyx_MEMVIEW_PTR) {
33634 0 : if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) {
33635 0 : PyErr_Format(PyExc_ValueError,
33636 : "Buffer is not indirectly accessible "
33637 : "in dimension %d.", dim);
33638 0 : goto fail;
33639 : }
33640 : }
33641 : return 1;
33642 : fail:
33643 : return 0;
33644 : }
33645 : static int
33646 406 : __pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag)
33647 : {
33648 406 : int i;
33649 406 : if (c_or_f_flag & __Pyx_IS_F_CONTIG) {
33650 : Py_ssize_t stride = 1;
33651 0 : for (i = 0; i < ndim; i++) {
33652 0 : if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
33653 0 : PyErr_SetString(PyExc_ValueError,
33654 : "Buffer not fortran contiguous.");
33655 0 : goto fail;
33656 : }
33657 0 : stride = stride * buf->shape[i];
33658 : }
33659 406 : } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) {
33660 406 : Py_ssize_t stride = 1;
33661 1353 : for (i = ndim - 1; i >- 1; i--) {
33662 947 : if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) {
33663 0 : PyErr_SetString(PyExc_ValueError,
33664 : "Buffer not C contiguous.");
33665 0 : goto fail;
33666 : }
33667 947 : stride = stride * buf->shape[i];
33668 : }
33669 : }
33670 : return 1;
33671 : fail:
33672 : return 0;
33673 : }
33674 408 : static int __Pyx_ValidateAndInit_memviewslice(
33675 : int *axes_specs,
33676 : int c_or_f_flag,
33677 : int buf_flags,
33678 : int ndim,
33679 : __Pyx_TypeInfo *dtype,
33680 : __Pyx_BufFmt_StackElem stack[],
33681 : __Pyx_memviewslice *memviewslice,
33682 : PyObject *original_obj)
33683 : {
33684 408 : struct __pyx_memoryview_obj *memview, *new_memview;
33685 : __Pyx_RefNannyDeclarations
33686 408 : Py_buffer *buf;
33687 408 : int i, spec = 0, retval = -1;
33688 408 : __Pyx_BufFmt_Context ctx;
33689 408 : int from_memoryview = __pyx_memoryview_check(original_obj);
33690 408 : __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0);
33691 408 : if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *)
33692 : original_obj)->typeinfo)) {
33693 : memview = (struct __pyx_memoryview_obj *) original_obj;
33694 : new_memview = NULL;
33695 : } else {
33696 405 : memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
33697 : original_obj, buf_flags, 0, dtype);
33698 405 : new_memview = memview;
33699 405 : if (unlikely(!memview))
33700 0 : goto fail;
33701 : }
33702 408 : buf = &memview->view;
33703 408 : if (unlikely(buf->ndim != ndim)) {
33704 0 : PyErr_Format(PyExc_ValueError,
33705 : "Buffer has wrong number of dimensions (expected %d, got %d)",
33706 : ndim, buf->ndim);
33707 0 : goto fail;
33708 : }
33709 408 : if (new_memview) {
33710 405 : __Pyx_BufFmt_Init(&ctx, stack, dtype);
33711 405 : if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail;
33712 : }
33713 406 : if (unlikely((unsigned) buf->itemsize != dtype->size)) {
33714 0 : PyErr_Format(PyExc_ValueError,
33715 : "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) "
33716 : "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)",
33717 : buf->itemsize,
33718 : (buf->itemsize > 1) ? "s" : "",
33719 : dtype->name,
33720 : dtype->size,
33721 : (dtype->size > 1) ? "s" : "");
33722 0 : goto fail;
33723 : }
33724 406 : if (buf->len > 0) {
33725 1353 : for (i = 0; i < ndim; i++) {
33726 947 : spec = axes_specs[i];
33727 947 : if (unlikely(!__pyx_check_strides(buf, i, ndim, spec)))
33728 0 : goto fail;
33729 947 : if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec)))
33730 0 : goto fail;
33731 : }
33732 406 : if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag)))
33733 0 : goto fail;
33734 : }
33735 406 : if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice,
33736 : new_memview != NULL) == -1)) {
33737 0 : goto fail;
33738 : }
33739 406 : retval = 0;
33740 406 : goto no_fail;
33741 2 : fail:
33742 2 : Py_XDECREF(new_memview);
33743 2 : retval = -1;
33744 408 : no_fail:
33745 408 : __Pyx_RefNannyFinishContext();
33746 408 : return retval;
33747 : }
33748 :
33749 : /* ObjectToMemviewSlice */
33750 32 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_float(PyObject *obj, int writable_flag) {
33751 32 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33752 32 : __Pyx_BufFmt_StackElem stack[1];
33753 32 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33754 32 : int retcode;
33755 32 : if (obj == Py_None) {
33756 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33757 0 : return result;
33758 : }
33759 32 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33760 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33761 : &__Pyx_TypeInfo_float, stack,
33762 : &result, obj);
33763 32 : if (unlikely(retcode == -1))
33764 0 : goto __pyx_fail;
33765 32 : return result;
33766 0 : __pyx_fail:
33767 0 : result.memview = NULL;
33768 0 : result.data = NULL;
33769 0 : return result;
33770 : }
33771 :
33772 : /* ObjectToMemviewSlice */
33773 1 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_float_complex(PyObject *obj, int writable_flag) {
33774 1 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33775 1 : __Pyx_BufFmt_StackElem stack[1];
33776 1 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33777 1 : int retcode;
33778 1 : if (obj == Py_None) {
33779 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33780 0 : return result;
33781 : }
33782 1 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33783 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33784 : &__Pyx_TypeInfo___pyx_t_float_complex, stack,
33785 : &result, obj);
33786 1 : if (unlikely(retcode == -1))
33787 1 : goto __pyx_fail;
33788 0 : return result;
33789 1 : __pyx_fail:
33790 1 : result.memview = NULL;
33791 1 : result.data = NULL;
33792 1 : return result;
33793 : }
33794 :
33795 : /* ObjectToMemviewSlice */
33796 179 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_double(PyObject *obj, int writable_flag) {
33797 179 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33798 179 : __Pyx_BufFmt_StackElem stack[1];
33799 179 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33800 179 : int retcode;
33801 179 : if (obj == Py_None) {
33802 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33803 0 : return result;
33804 : }
33805 179 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33806 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33807 : &__Pyx_TypeInfo_double, stack,
33808 : &result, obj);
33809 179 : if (unlikely(retcode == -1))
33810 1 : goto __pyx_fail;
33811 178 : return result;
33812 1 : __pyx_fail:
33813 1 : result.memview = NULL;
33814 1 : result.data = NULL;
33815 1 : return result;
33816 : }
33817 :
33818 : /* ObjectToMemviewSlice */
33819 56 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_double_complex(PyObject *obj, int writable_flag) {
33820 56 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33821 56 : __Pyx_BufFmt_StackElem stack[1];
33822 56 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33823 56 : int retcode;
33824 56 : if (obj == Py_None) {
33825 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33826 0 : return result;
33827 : }
33828 56 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33829 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33830 : &__Pyx_TypeInfo___pyx_t_double_complex, stack,
33831 : &result, obj);
33832 56 : if (unlikely(retcode == -1))
33833 0 : goto __pyx_fail;
33834 56 : return result;
33835 0 : __pyx_fail:
33836 0 : result.memview = NULL;
33837 0 : result.data = NULL;
33838 0 : return result;
33839 : }
33840 :
33841 : /* ObjectToMemviewSlice */
33842 0 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_long__double(PyObject *obj, int writable_flag) {
33843 0 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33844 0 : __Pyx_BufFmt_StackElem stack[1];
33845 0 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33846 0 : int retcode;
33847 0 : if (obj == Py_None) {
33848 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33849 0 : return result;
33850 : }
33851 0 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33852 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33853 : &__Pyx_TypeInfo_long__double, stack,
33854 : &result, obj);
33855 0 : if (unlikely(retcode == -1))
33856 0 : goto __pyx_fail;
33857 0 : return result;
33858 0 : __pyx_fail:
33859 0 : result.memview = NULL;
33860 0 : result.data = NULL;
33861 0 : return result;
33862 : }
33863 :
33864 : /* ObjectToMemviewSlice */
33865 0 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc___pyx_t_long_double_complex(PyObject *obj, int writable_flag) {
33866 0 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33867 0 : __Pyx_BufFmt_StackElem stack[1];
33868 0 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33869 0 : int retcode;
33870 0 : if (obj == Py_None) {
33871 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33872 0 : return result;
33873 : }
33874 0 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33875 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33876 : &__Pyx_TypeInfo___pyx_t_long_double_complex, stack,
33877 : &result, obj);
33878 0 : if (unlikely(retcode == -1))
33879 0 : goto __pyx_fail;
33880 0 : return result;
33881 0 : __pyx_fail:
33882 0 : result.memview = NULL;
33883 0 : result.data = NULL;
33884 0 : return result;
33885 : }
33886 :
33887 : /* ObjectToMemviewSlice */
33888 5 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_dc_object(PyObject *obj, int writable_flag) {
33889 5 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33890 5 : __Pyx_BufFmt_StackElem stack[1];
33891 5 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33892 5 : int retcode;
33893 5 : if (obj == Py_None) {
33894 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33895 0 : return result;
33896 : }
33897 5 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33898 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 2,
33899 : &__Pyx_TypeInfo_object, stack,
33900 : &result, obj);
33901 5 : if (unlikely(retcode == -1))
33902 0 : goto __pyx_fail;
33903 5 : return result;
33904 0 : __pyx_fail:
33905 0 : result.memview = NULL;
33906 0 : result.data = NULL;
33907 0 : return result;
33908 : }
33909 :
33910 : /* ObjectToMemviewSlice */
33911 2 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_object(PyObject *obj, int writable_flag) {
33912 2 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33913 2 : __Pyx_BufFmt_StackElem stack[1];
33914 2 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33915 2 : int retcode;
33916 2 : if (obj == Py_None) {
33917 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33918 0 : return result;
33919 : }
33920 2 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33921 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
33922 : &__Pyx_TypeInfo_object, stack,
33923 : &result, obj);
33924 2 : if (unlikely(retcode == -1))
33925 0 : goto __pyx_fail;
33926 2 : return result;
33927 0 : __pyx_fail:
33928 0 : result.memview = NULL;
33929 0 : result.data = NULL;
33930 0 : return result;
33931 : }
33932 :
33933 : /* ObjectToMemviewSlice */
33934 16 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_float(PyObject *obj, int writable_flag) {
33935 16 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33936 16 : __Pyx_BufFmt_StackElem stack[1];
33937 16 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33938 16 : int retcode;
33939 16 : if (obj == Py_None) {
33940 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33941 0 : return result;
33942 : }
33943 16 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33944 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
33945 : &__Pyx_TypeInfo_float, stack,
33946 : &result, obj);
33947 16 : if (unlikely(retcode == -1))
33948 0 : goto __pyx_fail;
33949 16 : return result;
33950 0 : __pyx_fail:
33951 0 : result.memview = NULL;
33952 0 : result.data = NULL;
33953 0 : return result;
33954 : }
33955 :
33956 : /* ObjectToMemviewSlice */
33957 0 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_float_complex(PyObject *obj, int writable_flag) {
33958 0 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33959 0 : __Pyx_BufFmt_StackElem stack[1];
33960 0 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33961 0 : int retcode;
33962 0 : if (obj == Py_None) {
33963 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33964 0 : return result;
33965 : }
33966 0 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33967 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
33968 : &__Pyx_TypeInfo___pyx_t_float_complex, stack,
33969 : &result, obj);
33970 0 : if (unlikely(retcode == -1))
33971 0 : goto __pyx_fail;
33972 0 : return result;
33973 0 : __pyx_fail:
33974 0 : result.memview = NULL;
33975 0 : result.data = NULL;
33976 0 : return result;
33977 : }
33978 :
33979 : /* ObjectToMemviewSlice */
33980 89 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_double(PyObject *obj, int writable_flag) {
33981 89 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
33982 89 : __Pyx_BufFmt_StackElem stack[1];
33983 89 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
33984 89 : int retcode;
33985 89 : if (obj == Py_None) {
33986 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
33987 0 : return result;
33988 : }
33989 89 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
33990 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
33991 : &__Pyx_TypeInfo_double, stack,
33992 : &result, obj);
33993 89 : if (unlikely(retcode == -1))
33994 0 : goto __pyx_fail;
33995 89 : return result;
33996 0 : __pyx_fail:
33997 0 : result.memview = NULL;
33998 0 : result.data = NULL;
33999 0 : return result;
34000 : }
34001 :
34002 : /* ObjectToMemviewSlice */
34003 28 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_double_complex(PyObject *obj, int writable_flag) {
34004 28 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
34005 28 : __Pyx_BufFmt_StackElem stack[1];
34006 28 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
34007 28 : int retcode;
34008 28 : if (obj == Py_None) {
34009 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
34010 0 : return result;
34011 : }
34012 28 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
34013 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
34014 : &__Pyx_TypeInfo___pyx_t_double_complex, stack,
34015 : &result, obj);
34016 28 : if (unlikely(retcode == -1))
34017 0 : goto __pyx_fail;
34018 28 : return result;
34019 0 : __pyx_fail:
34020 0 : result.memview = NULL;
34021 0 : result.data = NULL;
34022 0 : return result;
34023 : }
34024 :
34025 : /* ObjectToMemviewSlice */
34026 0 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc_long__double(PyObject *obj, int writable_flag) {
34027 0 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
34028 0 : __Pyx_BufFmt_StackElem stack[1];
34029 0 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
34030 0 : int retcode;
34031 0 : if (obj == Py_None) {
34032 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
34033 0 : return result;
34034 : }
34035 0 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
34036 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
34037 : &__Pyx_TypeInfo_long__double, stack,
34038 : &result, obj);
34039 0 : if (unlikely(retcode == -1))
34040 0 : goto __pyx_fail;
34041 0 : return result;
34042 0 : __pyx_fail:
34043 0 : result.memview = NULL;
34044 0 : result.data = NULL;
34045 0 : return result;
34046 : }
34047 :
34048 : /* ObjectToMemviewSlice */
34049 0 : static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_d_d_dc___pyx_t_long_double_complex(PyObject *obj, int writable_flag) {
34050 0 : __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } };
34051 0 : __Pyx_BufFmt_StackElem stack[1];
34052 0 : int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_FOLLOW), (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_CONTIG) };
34053 0 : int retcode;
34054 0 : if (obj == Py_None) {
34055 0 : result.memview = (struct __pyx_memoryview_obj *) Py_None;
34056 0 : return result;
34057 : }
34058 0 : retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, __Pyx_IS_C_CONTIG,
34059 : (PyBUF_C_CONTIGUOUS | PyBUF_FORMAT) | writable_flag, 3,
34060 : &__Pyx_TypeInfo___pyx_t_long_double_complex, stack,
34061 : &result, obj);
34062 0 : if (unlikely(retcode == -1))
34063 0 : goto __pyx_fail;
34064 0 : return result;
34065 0 : __pyx_fail:
34066 0 : result.memview = NULL;
34067 0 : result.data = NULL;
34068 0 : return result;
34069 : }
34070 :
34071 : /* PyUCS4InUnicode */
34072 : #if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
34073 : #if PY_VERSION_HEX < 0x03090000
34074 : #define __Pyx_PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(op)
34075 : #define __Pyx_PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(op)
34076 : #else
34077 : #define __Pyx_PyUnicode_AS_UNICODE(op) (((PyASCIIObject *)(op))->wstr)
34078 : #define __Pyx_PyUnicode_GET_SIZE(op) ((PyCompactUnicodeObject *)(op))->wstr_length
34079 : #endif
34080 : #if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
34081 : static int __Pyx_PyUnicodeBufferContainsUCS4_SP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
34082 : Py_UNICODE high_val, low_val;
34083 : Py_UNICODE* pos;
34084 : high_val = (Py_UNICODE) (0xD800 | (((character - 0x10000) >> 10) & ((1<<10)-1)));
34085 : low_val = (Py_UNICODE) (0xDC00 | ( (character - 0x10000) & ((1<<10)-1)));
34086 : for (pos=buffer; pos < buffer+length-1; pos++) {
34087 : if (unlikely((high_val == pos[0]) & (low_val == pos[1]))) return 1;
34088 : }
34089 : return 0;
34090 : }
34091 : #endif
34092 : static int __Pyx_PyUnicodeBufferContainsUCS4_BMP(Py_UNICODE* buffer, Py_ssize_t length, Py_UCS4 character) {
34093 : Py_UNICODE uchar;
34094 : Py_UNICODE* pos;
34095 : uchar = (Py_UNICODE) character;
34096 : for (pos=buffer; pos < buffer+length; pos++) {
34097 : if (unlikely(uchar == pos[0])) return 1;
34098 : }
34099 : return 0;
34100 : }
34101 : #endif
34102 : static CYTHON_INLINE int __Pyx_UnicodeContainsUCS4(PyObject* unicode, Py_UCS4 character) {
34103 : #if CYTHON_PEP393_ENABLED
34104 : const int kind = PyUnicode_KIND(unicode);
34105 : #ifdef PyUnicode_WCHAR_KIND
34106 : if (likely(kind != PyUnicode_WCHAR_KIND))
34107 : #endif
34108 : {
34109 : Py_ssize_t i;
34110 : const void* udata = PyUnicode_DATA(unicode);
34111 : const Py_ssize_t length = PyUnicode_GET_LENGTH(unicode);
34112 : for (i=0; i < length; i++) {
34113 : if (unlikely(character == PyUnicode_READ(kind, udata, i))) return 1;
34114 : }
34115 : return 0;
34116 : }
34117 : #elif PY_VERSION_HEX >= 0x03090000
34118 : #error Cannot use "UChar in Unicode" in Python 3.9 without PEP-393 unicode strings.
34119 : #elif !defined(PyUnicode_AS_UNICODE)
34120 : #error Cannot use "UChar in Unicode" in Python < 3.9 without Py_UNICODE support.
34121 : #endif
34122 : #if PY_VERSION_HEX < 0x03090000 || (defined(PyUnicode_WCHAR_KIND) && defined(PyUnicode_AS_UNICODE))
34123 : #if !defined(Py_UNICODE_SIZE) || Py_UNICODE_SIZE == 2
34124 : if ((sizeof(Py_UNICODE) == 2) && unlikely(character > 65535)) {
34125 : return __Pyx_PyUnicodeBufferContainsUCS4_SP(
34126 : __Pyx_PyUnicode_AS_UNICODE(unicode),
34127 : __Pyx_PyUnicode_GET_SIZE(unicode),
34128 : character);
34129 : } else
34130 : #endif
34131 : {
34132 : return __Pyx_PyUnicodeBufferContainsUCS4_BMP(
34133 : __Pyx_PyUnicode_AS_UNICODE(unicode),
34134 : __Pyx_PyUnicode_GET_SIZE(unicode),
34135 : character);
34136 : }
34137 : #endif
34138 : }
34139 :
34140 : /* MemviewObjectToObject */
34141 0 : static PyObject *__pyx_memview_get_object(const char *itemp) {
34142 0 : PyObject *result = *(PyObject **) itemp;
34143 0 : Py_INCREF(result);
34144 0 : return result;
34145 : }
34146 0 : static int __pyx_memview_set_object(const char *itemp, PyObject *obj) {
34147 0 : Py_INCREF(obj);
34148 0 : Py_DECREF(*(PyObject **) itemp);
34149 0 : *(PyObject **) itemp = obj;
34150 0 : return 1;
34151 : }
34152 :
34153 : /* MemviewSliceCopyTemplate */
34154 : static __Pyx_memviewslice
34155 0 : __pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs,
34156 : const char *mode, int ndim,
34157 : size_t sizeof_dtype, int contig_flag,
34158 : int dtype_is_object)
34159 : {
34160 : __Pyx_RefNannyDeclarations
34161 0 : int i;
34162 0 : __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } };
34163 0 : struct __pyx_memoryview_obj *from_memview = from_mvs->memview;
34164 0 : Py_buffer *buf = &from_memview->view;
34165 0 : PyObject *shape_tuple = NULL;
34166 0 : PyObject *temp_int = NULL;
34167 0 : struct __pyx_array_obj *array_obj = NULL;
34168 0 : struct __pyx_memoryview_obj *memview_obj = NULL;
34169 0 : __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0);
34170 0 : for (i = 0; i < ndim; i++) {
34171 0 : if (unlikely(from_mvs->suboffsets[i] >= 0)) {
34172 0 : PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with "
34173 : "indirect dimensions (axis %d)", i);
34174 0 : goto fail;
34175 : }
34176 : }
34177 0 : shape_tuple = PyTuple_New(ndim);
34178 0 : if (unlikely(!shape_tuple)) {
34179 0 : goto fail;
34180 : }
34181 : __Pyx_GOTREF(shape_tuple);
34182 0 : for(i = 0; i < ndim; i++) {
34183 0 : temp_int = PyInt_FromSsize_t(from_mvs->shape[i]);
34184 0 : if(unlikely(!temp_int)) {
34185 0 : goto fail;
34186 : } else {
34187 0 : PyTuple_SET_ITEM(shape_tuple, i, temp_int);
34188 0 : temp_int = NULL;
34189 : }
34190 : }
34191 0 : array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL);
34192 0 : if (unlikely(!array_obj)) {
34193 0 : goto fail;
34194 : }
34195 0 : __Pyx_GOTREF(array_obj);
34196 0 : memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new(
34197 : (PyObject *) array_obj, contig_flag,
34198 : dtype_is_object,
34199 0 : from_mvs->memview->typeinfo);
34200 0 : if (unlikely(!memview_obj))
34201 0 : goto fail;
34202 0 : if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0))
34203 0 : goto fail;
34204 0 : if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim,
34205 : dtype_is_object) < 0))
34206 0 : goto fail;
34207 0 : goto no_fail;
34208 0 : fail:
34209 0 : __Pyx_XDECREF(new_mvs.memview);
34210 0 : new_mvs.memview = NULL;
34211 0 : new_mvs.data = NULL;
34212 0 : no_fail:
34213 0 : __Pyx_XDECREF(shape_tuple);
34214 0 : __Pyx_XDECREF(temp_int);
34215 0 : __Pyx_XDECREF(array_obj);
34216 0 : __Pyx_RefNannyFinishContext();
34217 0 : return new_mvs;
34218 : }
34219 :
34220 : /* MemviewSliceInit */
34221 : static int
34222 406 : __Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview,
34223 : int ndim,
34224 : __Pyx_memviewslice *memviewslice,
34225 : int memview_is_new_reference)
34226 : {
34227 : __Pyx_RefNannyDeclarations
34228 406 : int i, retval=-1;
34229 406 : Py_buffer *buf = &memview->view;
34230 406 : __Pyx_RefNannySetupContext("init_memviewslice", 0);
34231 406 : if (unlikely(memviewslice->memview || memviewslice->data)) {
34232 0 : PyErr_SetString(PyExc_ValueError,
34233 : "memviewslice is already initialized!");
34234 0 : goto fail;
34235 : }
34236 406 : if (buf->strides) {
34237 1353 : for (i = 0; i < ndim; i++) {
34238 947 : memviewslice->strides[i] = buf->strides[i];
34239 : }
34240 : } else {
34241 0 : Py_ssize_t stride = buf->itemsize;
34242 0 : for (i = ndim - 1; i >= 0; i--) {
34243 0 : memviewslice->strides[i] = stride;
34244 0 : stride *= buf->shape[i];
34245 : }
34246 : }
34247 1353 : for (i = 0; i < ndim; i++) {
34248 947 : memviewslice->shape[i] = buf->shape[i];
34249 947 : if (buf->suboffsets) {
34250 0 : memviewslice->suboffsets[i] = buf->suboffsets[i];
34251 : } else {
34252 947 : memviewslice->suboffsets[i] = -1;
34253 : }
34254 : }
34255 406 : memviewslice->memview = memview;
34256 406 : memviewslice->data = (char *)buf->buf;
34257 406 : if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) {
34258 3 : Py_INCREF(memview);
34259 : }
34260 406 : retval = 0;
34261 406 : goto no_fail;
34262 0 : fail:
34263 0 : memviewslice->memview = 0;
34264 0 : memviewslice->data = 0;
34265 0 : retval = -1;
34266 406 : no_fail:
34267 406 : __Pyx_RefNannyFinishContext();
34268 406 : return retval;
34269 : }
34270 : #ifndef Py_NO_RETURN
34271 : #define Py_NO_RETURN
34272 : #endif
34273 0 : static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN {
34274 0 : va_list vargs;
34275 0 : char msg[200];
34276 : #if PY_VERSION_HEX >= 0x030A0000 || defined(HAVE_STDARG_PROTOTYPES)
34277 0 : va_start(vargs, fmt);
34278 : #else
34279 : va_start(vargs);
34280 : #endif
34281 0 : vsnprintf(msg, 200, fmt, vargs);
34282 0 : va_end(vargs);
34283 0 : Py_FatalError(msg);
34284 : }
34285 : static CYTHON_INLINE int
34286 : __pyx_add_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
34287 : PyThread_type_lock lock)
34288 : {
34289 : int result;
34290 : PyThread_acquire_lock(lock, 1);
34291 : result = (*acquisition_count)++;
34292 : PyThread_release_lock(lock);
34293 : return result;
34294 : }
34295 : static CYTHON_INLINE int
34296 : __pyx_sub_acquisition_count_locked(__pyx_atomic_int_type *acquisition_count,
34297 : PyThread_type_lock lock)
34298 : {
34299 : int result;
34300 : PyThread_acquire_lock(lock, 1);
34301 : result = (*acquisition_count)--;
34302 : PyThread_release_lock(lock);
34303 : return result;
34304 : }
34305 : static CYTHON_INLINE void
34306 1412 : __Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno)
34307 : {
34308 1412 : __pyx_nonatomic_int_type old_acquisition_count;
34309 1412 : struct __pyx_memoryview_obj *memview = memslice->memview;
34310 1412 : if (unlikely(!memview || (PyObject *) memview == Py_None)) {
34311 : return;
34312 : }
34313 1412 : old_acquisition_count = __pyx_add_acquisition_count(memview);
34314 1412 : if (unlikely(old_acquisition_count <= 0)) {
34315 0 : if (likely(old_acquisition_count == 0)) {
34316 0 : if (have_gil) {
34317 0 : Py_INCREF((PyObject *) memview);
34318 : } else {
34319 0 : PyGILState_STATE _gilstate = PyGILState_Ensure();
34320 0 : Py_INCREF((PyObject *) memview);
34321 0 : PyGILState_Release(_gilstate);
34322 : }
34323 : } else {
34324 0 : __pyx_fatalerror("Acquisition count is %d (line %d)",
34325 : old_acquisition_count+1, lineno);
34326 : }
34327 : }
34328 : }
34329 1951 : static CYTHON_INLINE void __Pyx_XCLEAR_MEMVIEW(__Pyx_memviewslice *memslice,
34330 : int have_gil, int lineno) {
34331 1951 : __pyx_nonatomic_int_type old_acquisition_count;
34332 1951 : struct __pyx_memoryview_obj *memview = memslice->memview;
34333 1951 : if (unlikely(!memview || (PyObject *) memview == Py_None)) {
34334 133 : memslice->memview = NULL;
34335 133 : return;
34336 : }
34337 1818 : old_acquisition_count = __pyx_sub_acquisition_count(memview);
34338 1818 : memslice->data = NULL;
34339 1818 : if (likely(old_acquisition_count > 1)) {
34340 1412 : memslice->memview = NULL;
34341 406 : } else if (likely(old_acquisition_count == 1)) {
34342 406 : if (have_gil) {
34343 406 : Py_CLEAR(memslice->memview);
34344 : } else {
34345 0 : PyGILState_STATE _gilstate = PyGILState_Ensure();
34346 0 : Py_CLEAR(memslice->memview);
34347 0 : PyGILState_Release(_gilstate);
34348 : }
34349 : } else {
34350 0 : __pyx_fatalerror("Acquisition count is %d (line %d)",
34351 : old_acquisition_count-1, lineno);
34352 : }
34353 : }
34354 :
34355 : /* CIntToPy */
34356 0 : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) {
34357 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34358 : #pragma GCC diagnostic push
34359 : #pragma GCC diagnostic ignored "-Wconversion"
34360 : #endif
34361 0 : const long neg_one = (long) -1, const_zero = (long) 0;
34362 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34363 : #pragma GCC diagnostic pop
34364 : #endif
34365 0 : const int is_unsigned = neg_one > const_zero;
34366 0 : if (is_unsigned) {
34367 : if (sizeof(long) < sizeof(long)) {
34368 : return PyInt_FromLong((long) value);
34369 : } else if (sizeof(long) <= sizeof(unsigned long)) {
34370 : return PyLong_FromUnsignedLong((unsigned long) value);
34371 : #ifdef HAVE_LONG_LONG
34372 : } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) {
34373 : return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
34374 : #endif
34375 : }
34376 : } else {
34377 0 : if (sizeof(long) <= sizeof(long)) {
34378 0 : return PyInt_FromLong((long) value);
34379 : #ifdef HAVE_LONG_LONG
34380 : } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) {
34381 : return PyLong_FromLongLong((PY_LONG_LONG) value);
34382 : #endif
34383 : }
34384 : }
34385 : {
34386 : unsigned char *bytes = (unsigned char *)&value;
34387 : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
34388 : if (is_unsigned) {
34389 : return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
34390 : } else {
34391 : return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
34392 : }
34393 : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
34394 : int one = 1; int little = (int)*(unsigned char *)&one;
34395 : return _PyLong_FromByteArray(bytes, sizeof(long),
34396 : little, !is_unsigned);
34397 : #else
34398 : int one = 1; int little = (int)*(unsigned char *)&one;
34399 : PyObject *from_bytes, *result = NULL;
34400 : PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
34401 : from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
34402 : if (!from_bytes) return NULL;
34403 : py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(long));
34404 : if (!py_bytes) goto limited_bad;
34405 : order_str = PyUnicode_FromString(little ? "little" : "big");
34406 : if (!order_str) goto limited_bad;
34407 : arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
34408 : if (!arg_tuple) goto limited_bad;
34409 : if (!is_unsigned) {
34410 : kwds = PyDict_New();
34411 : if (!kwds) goto limited_bad;
34412 : if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
34413 : }
34414 : result = PyObject_Call(from_bytes, arg_tuple, kwds);
34415 : limited_bad:
34416 : Py_XDECREF(kwds);
34417 : Py_XDECREF(arg_tuple);
34418 : Py_XDECREF(order_str);
34419 : Py_XDECREF(py_bytes);
34420 : Py_XDECREF(from_bytes);
34421 : return result;
34422 : #endif
34423 : }
34424 : }
34425 :
34426 : /* ImportNumPyArray */
34427 1 : static PyObject* __Pyx__ImportNumPyArray(void) {
34428 1 : PyObject *numpy_module, *ndarray_object = NULL;
34429 1 : numpy_module = __Pyx_Import(__pyx_n_s_numpy, NULL, 0);
34430 1 : if (likely(numpy_module)) {
34431 1 : ndarray_object = PyObject_GetAttrString(numpy_module, "ndarray");
34432 1 : Py_DECREF(numpy_module);
34433 : }
34434 1 : if (unlikely(!ndarray_object)) {
34435 0 : PyErr_Clear();
34436 : }
34437 1 : if (unlikely(!ndarray_object || !PyObject_TypeCheck(ndarray_object, &PyType_Type))) {
34438 0 : Py_XDECREF(ndarray_object);
34439 0 : Py_INCREF(Py_None);
34440 : ndarray_object = Py_None;
34441 : }
34442 1 : return ndarray_object;
34443 : }
34444 134 : static CYTHON_INLINE PyObject* __Pyx_ImportNumPyArrayTypeIfAvailable(void) {
34445 134 : if (unlikely(!__pyx_numpy_ndarray)) {
34446 1 : __pyx_numpy_ndarray = __Pyx__ImportNumPyArray();
34447 : }
34448 134 : Py_INCREF(__pyx_numpy_ndarray);
34449 134 : return __pyx_numpy_ndarray;
34450 : }
34451 :
34452 : /* CIntFromPyVerify */
34453 : #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\
34454 : __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0)
34455 : #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\
34456 : __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1)
34457 : #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\
34458 : {\
34459 : func_type value = func_value;\
34460 : if (sizeof(target_type) < sizeof(func_type)) {\
34461 : if (unlikely(value != (func_type) (target_type) value)) {\
34462 : func_type zero = 0;\
34463 : if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\
34464 : return (target_type) -1;\
34465 : if (is_unsigned && unlikely(value < zero))\
34466 : goto raise_neg_overflow;\
34467 : else\
34468 : goto raise_overflow;\
34469 : }\
34470 : }\
34471 : return (target_type) value;\
34472 : }
34473 :
34474 : /* CIntFromPy */
34475 408 : static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) {
34476 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34477 : #pragma GCC diagnostic push
34478 : #pragma GCC diagnostic ignored "-Wconversion"
34479 : #endif
34480 408 : const int neg_one = (int) -1, const_zero = (int) 0;
34481 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34482 : #pragma GCC diagnostic pop
34483 : #endif
34484 408 : const int is_unsigned = neg_one > const_zero;
34485 : #if PY_MAJOR_VERSION < 3
34486 : if (likely(PyInt_Check(x))) {
34487 : if ((sizeof(int) < sizeof(long))) {
34488 : __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x))
34489 : } else {
34490 : long val = PyInt_AS_LONG(x);
34491 : if (is_unsigned && unlikely(val < 0)) {
34492 : goto raise_neg_overflow;
34493 : }
34494 : return (int) val;
34495 : }
34496 : }
34497 : #endif
34498 408 : if (unlikely(!PyLong_Check(x))) {
34499 0 : int val;
34500 0 : PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
34501 0 : if (!tmp) return (int) -1;
34502 0 : val = __Pyx_PyInt_As_int(tmp);
34503 0 : Py_DECREF(tmp);
34504 0 : return val;
34505 : }
34506 408 : if (is_unsigned) {
34507 : #if CYTHON_USE_PYLONG_INTERNALS
34508 : if (unlikely(__Pyx_PyLong_IsNeg(x))) {
34509 : goto raise_neg_overflow;
34510 : } else if (__Pyx_PyLong_IsCompact(x)) {
34511 : __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
34512 : } else {
34513 : const digit* digits = __Pyx_PyLong_Digits(x);
34514 : assert(__Pyx_PyLong_DigitCount(x) > 1);
34515 : switch (__Pyx_PyLong_DigitCount(x)) {
34516 : case 2:
34517 : if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
34518 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34519 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34520 : } else if ((8 * sizeof(int) >= 2 * PyLong_SHIFT)) {
34521 : return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
34522 : }
34523 : }
34524 : break;
34525 : case 3:
34526 : if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
34527 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34528 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34529 : } else if ((8 * sizeof(int) >= 3 * PyLong_SHIFT)) {
34530 : return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
34531 : }
34532 : }
34533 : break;
34534 : case 4:
34535 : if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
34536 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34537 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34538 : } else if ((8 * sizeof(int) >= 4 * PyLong_SHIFT)) {
34539 : return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]));
34540 : }
34541 : }
34542 : break;
34543 : }
34544 : }
34545 : #endif
34546 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
34547 : if (unlikely(Py_SIZE(x) < 0)) {
34548 : goto raise_neg_overflow;
34549 : }
34550 : #else
34551 : {
34552 : int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
34553 : if (unlikely(result < 0))
34554 : return (int) -1;
34555 : if (unlikely(result == 1))
34556 : goto raise_neg_overflow;
34557 : }
34558 : #endif
34559 : if ((sizeof(int) <= sizeof(unsigned long))) {
34560 : __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x))
34561 : #ifdef HAVE_LONG_LONG
34562 : } else if ((sizeof(int) <= sizeof(unsigned PY_LONG_LONG))) {
34563 : __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
34564 : #endif
34565 : }
34566 : } else {
34567 : #if CYTHON_USE_PYLONG_INTERNALS
34568 408 : if (__Pyx_PyLong_IsCompact(x)) {
34569 408 : __PYX_VERIFY_RETURN_INT(int, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
34570 : } else {
34571 0 : const digit* digits = __Pyx_PyLong_Digits(x);
34572 0 : assert(__Pyx_PyLong_DigitCount(x) > 1);
34573 0 : switch (__Pyx_PyLong_SignedDigitCount(x)) {
34574 : case -2:
34575 0 : if ((8 * sizeof(int) - 1 > 1 * PyLong_SHIFT)) {
34576 0 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34577 0 : __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34578 : } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
34579 : return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34580 : }
34581 : }
34582 : break;
34583 : case 2:
34584 0 : if ((8 * sizeof(int) > 1 * PyLong_SHIFT)) {
34585 0 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34586 0 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34587 : } else if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
34588 : return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34589 : }
34590 : }
34591 : break;
34592 : case -3:
34593 : if ((8 * sizeof(int) - 1 > 2 * PyLong_SHIFT)) {
34594 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34595 : __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34596 : } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
34597 : return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34598 : }
34599 : }
34600 : break;
34601 : case 3:
34602 : if ((8 * sizeof(int) > 2 * PyLong_SHIFT)) {
34603 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34604 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34605 : } else if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
34606 : return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34607 : }
34608 : }
34609 : break;
34610 : case -4:
34611 : if ((8 * sizeof(int) - 1 > 3 * PyLong_SHIFT)) {
34612 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34613 : __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34614 : } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
34615 : return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34616 : }
34617 : }
34618 : break;
34619 : case 4:
34620 : if ((8 * sizeof(int) > 3 * PyLong_SHIFT)) {
34621 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34622 : __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34623 : } else if ((8 * sizeof(int) - 1 > 4 * PyLong_SHIFT)) {
34624 : return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])));
34625 : }
34626 : }
34627 : break;
34628 : }
34629 : }
34630 : #endif
34631 0 : if ((sizeof(int) <= sizeof(long))) {
34632 0 : __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x))
34633 : #ifdef HAVE_LONG_LONG
34634 : } else if ((sizeof(int) <= sizeof(PY_LONG_LONG))) {
34635 : __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x))
34636 : #endif
34637 : }
34638 : }
34639 : {
34640 : int val;
34641 : int ret = -1;
34642 : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
34643 : Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
34644 : x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
34645 : if (unlikely(bytes_copied == -1)) {
34646 : } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
34647 : goto raise_overflow;
34648 : } else {
34649 : ret = 0;
34650 : }
34651 : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
34652 : int one = 1; int is_little = (int)*(unsigned char *)&one;
34653 : unsigned char *bytes = (unsigned char *)&val;
34654 : ret = _PyLong_AsByteArray((PyLongObject *)x,
34655 : bytes, sizeof(val),
34656 : is_little, !is_unsigned);
34657 : #else
34658 : PyObject *v;
34659 : PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
34660 : int bits, remaining_bits, is_negative = 0;
34661 : int chunk_size = (sizeof(long) < 8) ? 30 : 62;
34662 : if (likely(PyLong_CheckExact(x))) {
34663 : v = __Pyx_NewRef(x);
34664 : } else {
34665 : v = PyNumber_Long(x);
34666 : if (unlikely(!v)) return (int) -1;
34667 : assert(PyLong_CheckExact(v));
34668 : }
34669 : {
34670 : int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
34671 : if (unlikely(result < 0)) {
34672 : Py_DECREF(v);
34673 : return (int) -1;
34674 : }
34675 : is_negative = result == 1;
34676 : }
34677 : if (is_unsigned && unlikely(is_negative)) {
34678 : Py_DECREF(v);
34679 : goto raise_neg_overflow;
34680 : } else if (is_negative) {
34681 : stepval = PyNumber_Invert(v);
34682 : Py_DECREF(v);
34683 : if (unlikely(!stepval))
34684 : return (int) -1;
34685 : } else {
34686 : stepval = v;
34687 : }
34688 : v = NULL;
34689 : val = (int) 0;
34690 : mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
34691 : shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
34692 : for (bits = 0; bits < (int) sizeof(int) * 8 - chunk_size; bits += chunk_size) {
34693 : PyObject *tmp, *digit;
34694 : long idigit;
34695 : digit = PyNumber_And(stepval, mask);
34696 : if (unlikely(!digit)) goto done;
34697 : idigit = PyLong_AsLong(digit);
34698 : Py_DECREF(digit);
34699 : if (unlikely(idigit < 0)) goto done;
34700 : val |= ((int) idigit) << bits;
34701 : tmp = PyNumber_Rshift(stepval, shift);
34702 : if (unlikely(!tmp)) goto done;
34703 : Py_DECREF(stepval); stepval = tmp;
34704 : }
34705 : Py_DECREF(shift); shift = NULL;
34706 : Py_DECREF(mask); mask = NULL;
34707 : {
34708 : long idigit = PyLong_AsLong(stepval);
34709 : if (unlikely(idigit < 0)) goto done;
34710 : remaining_bits = ((int) sizeof(int) * 8) - bits - (is_unsigned ? 0 : 1);
34711 : if (unlikely(idigit >= (1L << remaining_bits)))
34712 : goto raise_overflow;
34713 : val |= ((int) idigit) << bits;
34714 : }
34715 : if (!is_unsigned) {
34716 : if (unlikely(val & (((int) 1) << (sizeof(int) * 8 - 1))))
34717 : goto raise_overflow;
34718 : if (is_negative)
34719 : val = ~val;
34720 : }
34721 : ret = 0;
34722 : done:
34723 : Py_XDECREF(shift);
34724 : Py_XDECREF(mask);
34725 : Py_XDECREF(stepval);
34726 : #endif
34727 : if (unlikely(ret))
34728 : return (int) -1;
34729 : return val;
34730 : }
34731 0 : raise_overflow:
34732 0 : PyErr_SetString(PyExc_OverflowError,
34733 : "value too large to convert to int");
34734 0 : return (int) -1;
34735 : raise_neg_overflow:
34736 : PyErr_SetString(PyExc_OverflowError,
34737 : "can't convert negative value to int");
34738 : return (int) -1;
34739 : }
34740 :
34741 : /* CIntFromPy */
34742 0 : static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) {
34743 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34744 : #pragma GCC diagnostic push
34745 : #pragma GCC diagnostic ignored "-Wconversion"
34746 : #endif
34747 0 : const long neg_one = (long) -1, const_zero = (long) 0;
34748 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
34749 : #pragma GCC diagnostic pop
34750 : #endif
34751 0 : const int is_unsigned = neg_one > const_zero;
34752 : #if PY_MAJOR_VERSION < 3
34753 : if (likely(PyInt_Check(x))) {
34754 : if ((sizeof(long) < sizeof(long))) {
34755 : __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x))
34756 : } else {
34757 : long val = PyInt_AS_LONG(x);
34758 : if (is_unsigned && unlikely(val < 0)) {
34759 : goto raise_neg_overflow;
34760 : }
34761 : return (long) val;
34762 : }
34763 : }
34764 : #endif
34765 0 : if (unlikely(!PyLong_Check(x))) {
34766 0 : long val;
34767 0 : PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
34768 0 : if (!tmp) return (long) -1;
34769 0 : val = __Pyx_PyInt_As_long(tmp);
34770 0 : Py_DECREF(tmp);
34771 0 : return val;
34772 : }
34773 0 : if (is_unsigned) {
34774 : #if CYTHON_USE_PYLONG_INTERNALS
34775 : if (unlikely(__Pyx_PyLong_IsNeg(x))) {
34776 : goto raise_neg_overflow;
34777 : } else if (__Pyx_PyLong_IsCompact(x)) {
34778 : __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
34779 : } else {
34780 : const digit* digits = __Pyx_PyLong_Digits(x);
34781 : assert(__Pyx_PyLong_DigitCount(x) > 1);
34782 : switch (__Pyx_PyLong_DigitCount(x)) {
34783 : case 2:
34784 : if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
34785 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34786 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34787 : } else if ((8 * sizeof(long) >= 2 * PyLong_SHIFT)) {
34788 : return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
34789 : }
34790 : }
34791 : break;
34792 : case 3:
34793 : if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
34794 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34795 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34796 : } else if ((8 * sizeof(long) >= 3 * PyLong_SHIFT)) {
34797 : return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
34798 : }
34799 : }
34800 : break;
34801 : case 4:
34802 : if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
34803 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34804 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34805 : } else if ((8 * sizeof(long) >= 4 * PyLong_SHIFT)) {
34806 : return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]));
34807 : }
34808 : }
34809 : break;
34810 : }
34811 : }
34812 : #endif
34813 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
34814 : if (unlikely(Py_SIZE(x) < 0)) {
34815 : goto raise_neg_overflow;
34816 : }
34817 : #else
34818 : {
34819 : int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
34820 : if (unlikely(result < 0))
34821 : return (long) -1;
34822 : if (unlikely(result == 1))
34823 : goto raise_neg_overflow;
34824 : }
34825 : #endif
34826 : if ((sizeof(long) <= sizeof(unsigned long))) {
34827 : __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x))
34828 : #ifdef HAVE_LONG_LONG
34829 : } else if ((sizeof(long) <= sizeof(unsigned PY_LONG_LONG))) {
34830 : __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
34831 : #endif
34832 : }
34833 : } else {
34834 : #if CYTHON_USE_PYLONG_INTERNALS
34835 0 : if (__Pyx_PyLong_IsCompact(x)) {
34836 0 : __PYX_VERIFY_RETURN_INT(long, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
34837 : } else {
34838 0 : const digit* digits = __Pyx_PyLong_Digits(x);
34839 0 : assert(__Pyx_PyLong_DigitCount(x) > 1);
34840 0 : switch (__Pyx_PyLong_SignedDigitCount(x)) {
34841 : case -2:
34842 0 : if ((8 * sizeof(long) - 1 > 1 * PyLong_SHIFT)) {
34843 0 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34844 0 : __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34845 : } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
34846 : return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34847 : }
34848 : }
34849 : break;
34850 : case 2:
34851 0 : if ((8 * sizeof(long) > 1 * PyLong_SHIFT)) {
34852 0 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
34853 0 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34854 : } else if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
34855 : return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34856 : }
34857 : }
34858 : break;
34859 : case -3:
34860 : if ((8 * sizeof(long) - 1 > 2 * PyLong_SHIFT)) {
34861 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34862 : __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34863 : } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
34864 : return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34865 : }
34866 : }
34867 : break;
34868 : case 3:
34869 : if ((8 * sizeof(long) > 2 * PyLong_SHIFT)) {
34870 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
34871 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34872 : } else if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
34873 : return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34874 : }
34875 : }
34876 : break;
34877 : case -4:
34878 : if ((8 * sizeof(long) - 1 > 3 * PyLong_SHIFT)) {
34879 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34880 : __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34881 : } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
34882 : return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34883 : }
34884 : }
34885 : break;
34886 : case 4:
34887 : if ((8 * sizeof(long) > 3 * PyLong_SHIFT)) {
34888 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
34889 : __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
34890 : } else if ((8 * sizeof(long) - 1 > 4 * PyLong_SHIFT)) {
34891 : return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])));
34892 : }
34893 : }
34894 : break;
34895 : }
34896 : }
34897 : #endif
34898 0 : if ((sizeof(long) <= sizeof(long))) {
34899 0 : __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x))
34900 : #ifdef HAVE_LONG_LONG
34901 : } else if ((sizeof(long) <= sizeof(PY_LONG_LONG))) {
34902 : __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x))
34903 : #endif
34904 : }
34905 : }
34906 : {
34907 : long val;
34908 : int ret = -1;
34909 : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
34910 : Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
34911 : x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
34912 : if (unlikely(bytes_copied == -1)) {
34913 : } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
34914 : goto raise_overflow;
34915 : } else {
34916 : ret = 0;
34917 : }
34918 : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
34919 : int one = 1; int is_little = (int)*(unsigned char *)&one;
34920 : unsigned char *bytes = (unsigned char *)&val;
34921 : ret = _PyLong_AsByteArray((PyLongObject *)x,
34922 : bytes, sizeof(val),
34923 : is_little, !is_unsigned);
34924 : #else
34925 : PyObject *v;
34926 : PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
34927 : int bits, remaining_bits, is_negative = 0;
34928 : int chunk_size = (sizeof(long) < 8) ? 30 : 62;
34929 : if (likely(PyLong_CheckExact(x))) {
34930 : v = __Pyx_NewRef(x);
34931 : } else {
34932 : v = PyNumber_Long(x);
34933 : if (unlikely(!v)) return (long) -1;
34934 : assert(PyLong_CheckExact(v));
34935 : }
34936 : {
34937 : int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
34938 : if (unlikely(result < 0)) {
34939 : Py_DECREF(v);
34940 : return (long) -1;
34941 : }
34942 : is_negative = result == 1;
34943 : }
34944 : if (is_unsigned && unlikely(is_negative)) {
34945 : Py_DECREF(v);
34946 : goto raise_neg_overflow;
34947 : } else if (is_negative) {
34948 : stepval = PyNumber_Invert(v);
34949 : Py_DECREF(v);
34950 : if (unlikely(!stepval))
34951 : return (long) -1;
34952 : } else {
34953 : stepval = v;
34954 : }
34955 : v = NULL;
34956 : val = (long) 0;
34957 : mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
34958 : shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
34959 : for (bits = 0; bits < (int) sizeof(long) * 8 - chunk_size; bits += chunk_size) {
34960 : PyObject *tmp, *digit;
34961 : long idigit;
34962 : digit = PyNumber_And(stepval, mask);
34963 : if (unlikely(!digit)) goto done;
34964 : idigit = PyLong_AsLong(digit);
34965 : Py_DECREF(digit);
34966 : if (unlikely(idigit < 0)) goto done;
34967 : val |= ((long) idigit) << bits;
34968 : tmp = PyNumber_Rshift(stepval, shift);
34969 : if (unlikely(!tmp)) goto done;
34970 : Py_DECREF(stepval); stepval = tmp;
34971 : }
34972 : Py_DECREF(shift); shift = NULL;
34973 : Py_DECREF(mask); mask = NULL;
34974 : {
34975 : long idigit = PyLong_AsLong(stepval);
34976 : if (unlikely(idigit < 0)) goto done;
34977 : remaining_bits = ((int) sizeof(long) * 8) - bits - (is_unsigned ? 0 : 1);
34978 : if (unlikely(idigit >= (1L << remaining_bits)))
34979 : goto raise_overflow;
34980 : val |= ((long) idigit) << bits;
34981 : }
34982 : if (!is_unsigned) {
34983 : if (unlikely(val & (((long) 1) << (sizeof(long) * 8 - 1))))
34984 : goto raise_overflow;
34985 : if (is_negative)
34986 : val = ~val;
34987 : }
34988 : ret = 0;
34989 : done:
34990 : Py_XDECREF(shift);
34991 : Py_XDECREF(mask);
34992 : Py_XDECREF(stepval);
34993 : #endif
34994 : if (unlikely(ret))
34995 : return (long) -1;
34996 : return val;
34997 : }
34998 : raise_overflow:
34999 : PyErr_SetString(PyExc_OverflowError,
35000 : "value too large to convert to long");
35001 : return (long) -1;
35002 : raise_neg_overflow:
35003 : PyErr_SetString(PyExc_OverflowError,
35004 : "can't convert negative value to long");
35005 : return (long) -1;
35006 : }
35007 :
35008 : /* CIntToPy */
35009 405 : static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) {
35010 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
35011 : #pragma GCC diagnostic push
35012 : #pragma GCC diagnostic ignored "-Wconversion"
35013 : #endif
35014 405 : const int neg_one = (int) -1, const_zero = (int) 0;
35015 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
35016 : #pragma GCC diagnostic pop
35017 : #endif
35018 405 : const int is_unsigned = neg_one > const_zero;
35019 405 : if (is_unsigned) {
35020 : if (sizeof(int) < sizeof(long)) {
35021 : return PyInt_FromLong((long) value);
35022 : } else if (sizeof(int) <= sizeof(unsigned long)) {
35023 : return PyLong_FromUnsignedLong((unsigned long) value);
35024 : #ifdef HAVE_LONG_LONG
35025 : } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) {
35026 : return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value);
35027 : #endif
35028 : }
35029 : } else {
35030 405 : if (sizeof(int) <= sizeof(long)) {
35031 405 : return PyInt_FromLong((long) value);
35032 : #ifdef HAVE_LONG_LONG
35033 : } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) {
35034 : return PyLong_FromLongLong((PY_LONG_LONG) value);
35035 : #endif
35036 : }
35037 : }
35038 : {
35039 : unsigned char *bytes = (unsigned char *)&value;
35040 : #if !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX >= 0x030d00A4
35041 : if (is_unsigned) {
35042 : return PyLong_FromUnsignedNativeBytes(bytes, sizeof(value), -1);
35043 : } else {
35044 : return PyLong_FromNativeBytes(bytes, sizeof(value), -1);
35045 : }
35046 : #elif !CYTHON_COMPILING_IN_LIMITED_API && PY_VERSION_HEX < 0x030d0000
35047 : int one = 1; int little = (int)*(unsigned char *)&one;
35048 : return _PyLong_FromByteArray(bytes, sizeof(int),
35049 : little, !is_unsigned);
35050 : #else
35051 : int one = 1; int little = (int)*(unsigned char *)&one;
35052 : PyObject *from_bytes, *result = NULL;
35053 : PyObject *py_bytes = NULL, *arg_tuple = NULL, *kwds = NULL, *order_str = NULL;
35054 : from_bytes = PyObject_GetAttrString((PyObject*)&PyLong_Type, "from_bytes");
35055 : if (!from_bytes) return NULL;
35056 : py_bytes = PyBytes_FromStringAndSize((char*)bytes, sizeof(int));
35057 : if (!py_bytes) goto limited_bad;
35058 : order_str = PyUnicode_FromString(little ? "little" : "big");
35059 : if (!order_str) goto limited_bad;
35060 : arg_tuple = PyTuple_Pack(2, py_bytes, order_str);
35061 : if (!arg_tuple) goto limited_bad;
35062 : if (!is_unsigned) {
35063 : kwds = PyDict_New();
35064 : if (!kwds) goto limited_bad;
35065 : if (PyDict_SetItemString(kwds, "signed", __Pyx_NewRef(Py_True))) goto limited_bad;
35066 : }
35067 : result = PyObject_Call(from_bytes, arg_tuple, kwds);
35068 : limited_bad:
35069 : Py_XDECREF(kwds);
35070 : Py_XDECREF(arg_tuple);
35071 : Py_XDECREF(order_str);
35072 : Py_XDECREF(py_bytes);
35073 : Py_XDECREF(from_bytes);
35074 : return result;
35075 : #endif
35076 : }
35077 : }
35078 :
35079 : /* CIntFromPy */
35080 : static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
35081 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
35082 : #pragma GCC diagnostic push
35083 : #pragma GCC diagnostic ignored "-Wconversion"
35084 : #endif
35085 : const char neg_one = (char) -1, const_zero = (char) 0;
35086 : #ifdef __Pyx_HAS_GCC_DIAGNOSTIC
35087 : #pragma GCC diagnostic pop
35088 : #endif
35089 : const int is_unsigned = neg_one > const_zero;
35090 : #if PY_MAJOR_VERSION < 3
35091 : if (likely(PyInt_Check(x))) {
35092 : if ((sizeof(char) < sizeof(long))) {
35093 : __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x))
35094 : } else {
35095 : long val = PyInt_AS_LONG(x);
35096 : if (is_unsigned && unlikely(val < 0)) {
35097 : goto raise_neg_overflow;
35098 : }
35099 : return (char) val;
35100 : }
35101 : }
35102 : #endif
35103 : if (unlikely(!PyLong_Check(x))) {
35104 : char val;
35105 : PyObject *tmp = __Pyx_PyNumber_IntOrLong(x);
35106 : if (!tmp) return (char) -1;
35107 : val = __Pyx_PyInt_As_char(tmp);
35108 : Py_DECREF(tmp);
35109 : return val;
35110 : }
35111 : if (is_unsigned) {
35112 : #if CYTHON_USE_PYLONG_INTERNALS
35113 : if (unlikely(__Pyx_PyLong_IsNeg(x))) {
35114 : goto raise_neg_overflow;
35115 : } else if (__Pyx_PyLong_IsCompact(x)) {
35116 : __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_upylong, __Pyx_PyLong_CompactValueUnsigned(x))
35117 : } else {
35118 : const digit* digits = __Pyx_PyLong_Digits(x);
35119 : assert(__Pyx_PyLong_DigitCount(x) > 1);
35120 : switch (__Pyx_PyLong_DigitCount(x)) {
35121 : case 2:
35122 : if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
35123 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
35124 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35125 : } else if ((8 * sizeof(char) >= 2 * PyLong_SHIFT)) {
35126 : return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
35127 : }
35128 : }
35129 : break;
35130 : case 3:
35131 : if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
35132 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
35133 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35134 : } else if ((8 * sizeof(char) >= 3 * PyLong_SHIFT)) {
35135 : return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
35136 : }
35137 : }
35138 : break;
35139 : case 4:
35140 : if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
35141 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
35142 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35143 : } else if ((8 * sizeof(char) >= 4 * PyLong_SHIFT)) {
35144 : return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]));
35145 : }
35146 : }
35147 : break;
35148 : }
35149 : }
35150 : #endif
35151 : #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7
35152 : if (unlikely(Py_SIZE(x) < 0)) {
35153 : goto raise_neg_overflow;
35154 : }
35155 : #else
35156 : {
35157 : int result = PyObject_RichCompareBool(x, Py_False, Py_LT);
35158 : if (unlikely(result < 0))
35159 : return (char) -1;
35160 : if (unlikely(result == 1))
35161 : goto raise_neg_overflow;
35162 : }
35163 : #endif
35164 : if ((sizeof(char) <= sizeof(unsigned long))) {
35165 : __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x))
35166 : #ifdef HAVE_LONG_LONG
35167 : } else if ((sizeof(char) <= sizeof(unsigned PY_LONG_LONG))) {
35168 : __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x))
35169 : #endif
35170 : }
35171 : } else {
35172 : #if CYTHON_USE_PYLONG_INTERNALS
35173 : if (__Pyx_PyLong_IsCompact(x)) {
35174 : __PYX_VERIFY_RETURN_INT(char, __Pyx_compact_pylong, __Pyx_PyLong_CompactValue(x))
35175 : } else {
35176 : const digit* digits = __Pyx_PyLong_Digits(x);
35177 : assert(__Pyx_PyLong_DigitCount(x) > 1);
35178 : switch (__Pyx_PyLong_SignedDigitCount(x)) {
35179 : case -2:
35180 : if ((8 * sizeof(char) - 1 > 1 * PyLong_SHIFT)) {
35181 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
35182 : __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35183 : } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
35184 : return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35185 : }
35186 : }
35187 : break;
35188 : case 2:
35189 : if ((8 * sizeof(char) > 1 * PyLong_SHIFT)) {
35190 : if ((8 * sizeof(unsigned long) > 2 * PyLong_SHIFT)) {
35191 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35192 : } else if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
35193 : return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35194 : }
35195 : }
35196 : break;
35197 : case -3:
35198 : if ((8 * sizeof(char) - 1 > 2 * PyLong_SHIFT)) {
35199 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
35200 : __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35201 : } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
35202 : return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35203 : }
35204 : }
35205 : break;
35206 : case 3:
35207 : if ((8 * sizeof(char) > 2 * PyLong_SHIFT)) {
35208 : if ((8 * sizeof(unsigned long) > 3 * PyLong_SHIFT)) {
35209 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35210 : } else if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
35211 : return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35212 : }
35213 : }
35214 : break;
35215 : case -4:
35216 : if ((8 * sizeof(char) - 1 > 3 * PyLong_SHIFT)) {
35217 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
35218 : __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35219 : } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
35220 : return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35221 : }
35222 : }
35223 : break;
35224 : case 4:
35225 : if ((8 * sizeof(char) > 3 * PyLong_SHIFT)) {
35226 : if ((8 * sizeof(unsigned long) > 4 * PyLong_SHIFT)) {
35227 : __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])))
35228 : } else if ((8 * sizeof(char) - 1 > 4 * PyLong_SHIFT)) {
35229 : return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])));
35230 : }
35231 : }
35232 : break;
35233 : }
35234 : }
35235 : #endif
35236 : if ((sizeof(char) <= sizeof(long))) {
35237 : __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x))
35238 : #ifdef HAVE_LONG_LONG
35239 : } else if ((sizeof(char) <= sizeof(PY_LONG_LONG))) {
35240 : __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x))
35241 : #endif
35242 : }
35243 : }
35244 : {
35245 : char val;
35246 : int ret = -1;
35247 : #if PY_VERSION_HEX >= 0x030d00A6 && !CYTHON_COMPILING_IN_LIMITED_API
35248 : Py_ssize_t bytes_copied = PyLong_AsNativeBytes(
35249 : x, &val, sizeof(val), Py_ASNATIVEBYTES_NATIVE_ENDIAN | (is_unsigned ? Py_ASNATIVEBYTES_UNSIGNED_BUFFER | Py_ASNATIVEBYTES_REJECT_NEGATIVE : 0));
35250 : if (unlikely(bytes_copied == -1)) {
35251 : } else if (unlikely(bytes_copied > (Py_ssize_t) sizeof(val))) {
35252 : goto raise_overflow;
35253 : } else {
35254 : ret = 0;
35255 : }
35256 : #elif PY_VERSION_HEX < 0x030d0000 && !(CYTHON_COMPILING_IN_PYPY || CYTHON_COMPILING_IN_LIMITED_API) || defined(_PyLong_AsByteArray)
35257 : int one = 1; int is_little = (int)*(unsigned char *)&one;
35258 : unsigned char *bytes = (unsigned char *)&val;
35259 : ret = _PyLong_AsByteArray((PyLongObject *)x,
35260 : bytes, sizeof(val),
35261 : is_little, !is_unsigned);
35262 : #else
35263 : PyObject *v;
35264 : PyObject *stepval = NULL, *mask = NULL, *shift = NULL;
35265 : int bits, remaining_bits, is_negative = 0;
35266 : int chunk_size = (sizeof(long) < 8) ? 30 : 62;
35267 : if (likely(PyLong_CheckExact(x))) {
35268 : v = __Pyx_NewRef(x);
35269 : } else {
35270 : v = PyNumber_Long(x);
35271 : if (unlikely(!v)) return (char) -1;
35272 : assert(PyLong_CheckExact(v));
35273 : }
35274 : {
35275 : int result = PyObject_RichCompareBool(v, Py_False, Py_LT);
35276 : if (unlikely(result < 0)) {
35277 : Py_DECREF(v);
35278 : return (char) -1;
35279 : }
35280 : is_negative = result == 1;
35281 : }
35282 : if (is_unsigned && unlikely(is_negative)) {
35283 : Py_DECREF(v);
35284 : goto raise_neg_overflow;
35285 : } else if (is_negative) {
35286 : stepval = PyNumber_Invert(v);
35287 : Py_DECREF(v);
35288 : if (unlikely(!stepval))
35289 : return (char) -1;
35290 : } else {
35291 : stepval = v;
35292 : }
35293 : v = NULL;
35294 : val = (char) 0;
35295 : mask = PyLong_FromLong((1L << chunk_size) - 1); if (unlikely(!mask)) goto done;
35296 : shift = PyLong_FromLong(chunk_size); if (unlikely(!shift)) goto done;
35297 : for (bits = 0; bits < (int) sizeof(char) * 8 - chunk_size; bits += chunk_size) {
35298 : PyObject *tmp, *digit;
35299 : long idigit;
35300 : digit = PyNumber_And(stepval, mask);
35301 : if (unlikely(!digit)) goto done;
35302 : idigit = PyLong_AsLong(digit);
35303 : Py_DECREF(digit);
35304 : if (unlikely(idigit < 0)) goto done;
35305 : val |= ((char) idigit) << bits;
35306 : tmp = PyNumber_Rshift(stepval, shift);
35307 : if (unlikely(!tmp)) goto done;
35308 : Py_DECREF(stepval); stepval = tmp;
35309 : }
35310 : Py_DECREF(shift); shift = NULL;
35311 : Py_DECREF(mask); mask = NULL;
35312 : {
35313 : long idigit = PyLong_AsLong(stepval);
35314 : if (unlikely(idigit < 0)) goto done;
35315 : remaining_bits = ((int) sizeof(char) * 8) - bits - (is_unsigned ? 0 : 1);
35316 : if (unlikely(idigit >= (1L << remaining_bits)))
35317 : goto raise_overflow;
35318 : val |= ((char) idigit) << bits;
35319 : }
35320 : if (!is_unsigned) {
35321 : if (unlikely(val & (((char) 1) << (sizeof(char) * 8 - 1))))
35322 : goto raise_overflow;
35323 : if (is_negative)
35324 : val = ~val;
35325 : }
35326 : ret = 0;
35327 : done:
35328 : Py_XDECREF(shift);
35329 : Py_XDECREF(mask);
35330 : Py_XDECREF(stepval);
35331 : #endif
35332 : if (unlikely(ret))
35333 : return (char) -1;
35334 : return val;
35335 : }
35336 : raise_overflow:
35337 : PyErr_SetString(PyExc_OverflowError,
35338 : "value too large to convert to char");
35339 : return (char) -1;
35340 : raise_neg_overflow:
35341 : PyErr_SetString(PyExc_OverflowError,
35342 : "can't convert negative value to char");
35343 : return (char) -1;
35344 : }
35345 :
35346 : /* FormatTypeName */
35347 : #if CYTHON_COMPILING_IN_LIMITED_API
35348 : static __Pyx_TypeName
35349 : __Pyx_PyType_GetName(PyTypeObject* tp)
35350 : {
35351 : PyObject *name = __Pyx_PyObject_GetAttrStr((PyObject *)tp,
35352 : __pyx_n_s_name_2);
35353 : if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) {
35354 : PyErr_Clear();
35355 : Py_XDECREF(name);
35356 : name = __Pyx_NewRef(__pyx_n_s__30);
35357 : }
35358 : return name;
35359 : }
35360 : #endif
35361 :
35362 : /* CheckBinaryVersion */
35363 1 : static unsigned long __Pyx_get_runtime_version(void) {
35364 : #if __PYX_LIMITED_VERSION_HEX >= 0x030B00A4
35365 1 : return Py_Version & ~0xFFUL;
35366 : #else
35367 : const char* rt_version = Py_GetVersion();
35368 : unsigned long version = 0;
35369 : unsigned long factor = 0x01000000UL;
35370 : unsigned int digit = 0;
35371 : int i = 0;
35372 : while (factor) {
35373 : while ('0' <= rt_version[i] && rt_version[i] <= '9') {
35374 : digit = digit * 10 + (unsigned int) (rt_version[i] - '0');
35375 : ++i;
35376 : }
35377 : version += factor * digit;
35378 : if (rt_version[i] != '.')
35379 : break;
35380 : digit = 0;
35381 : factor >>= 8;
35382 : ++i;
35383 : }
35384 : return version;
35385 : #endif
35386 : }
35387 1 : static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt_version, int allow_newer) {
35388 1 : const unsigned long MAJOR_MINOR = 0xFFFF0000UL;
35389 1 : if ((rt_version & MAJOR_MINOR) == (ct_version & MAJOR_MINOR))
35390 : return 0;
35391 0 : if (likely(allow_newer && (rt_version & MAJOR_MINOR) > (ct_version & MAJOR_MINOR)))
35392 : return 1;
35393 : {
35394 0 : char message[200];
35395 0 : PyOS_snprintf(message, sizeof(message),
35396 : "compile time Python version %d.%d "
35397 : "of module '%.100s' "
35398 : "%s "
35399 : "runtime version %d.%d",
35400 0 : (int) (ct_version >> 24), (int) ((ct_version >> 16) & 0xFF),
35401 : __Pyx_MODULE_NAME,
35402 : (allow_newer) ? "was newer than" : "does not match",
35403 0 : (int) (rt_version >> 24), (int) ((rt_version >> 16) & 0xFF)
35404 : );
35405 0 : return PyErr_WarnEx(NULL, message, 1);
35406 : }
35407 : }
35408 :
35409 : /* InitStrings */
35410 : #if PY_MAJOR_VERSION >= 3
35411 160 : static int __Pyx_InitString(__Pyx_StringTabEntry t, PyObject **str) {
35412 160 : if (t.is_unicode | t.is_str) {
35413 159 : if (t.intern) {
35414 105 : *str = PyUnicode_InternFromString(t.s);
35415 54 : } else if (t.encoding) {
35416 0 : *str = PyUnicode_Decode(t.s, t.n - 1, t.encoding, NULL);
35417 : } else {
35418 54 : *str = PyUnicode_FromStringAndSize(t.s, t.n - 1);
35419 : }
35420 : } else {
35421 1 : *str = PyBytes_FromStringAndSize(t.s, t.n - 1);
35422 : }
35423 160 : if (!*str)
35424 : return -1;
35425 160 : if (PyObject_Hash(*str) == -1)
35426 : return -1;
35427 : return 0;
35428 : }
35429 : #endif
35430 1 : static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
35431 161 : while (t->p) {
35432 : #if PY_MAJOR_VERSION >= 3
35433 160 : __Pyx_InitString(*t, t->p);
35434 : #else
35435 : if (t->is_unicode) {
35436 : *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL);
35437 : } else if (t->intern) {
35438 : *t->p = PyString_InternFromString(t->s);
35439 : } else {
35440 : *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
35441 : }
35442 : if (!*t->p)
35443 : return -1;
35444 : if (PyObject_Hash(*t->p) == -1)
35445 : return -1;
35446 : #endif
35447 160 : ++t;
35448 : }
35449 1 : return 0;
35450 : }
35451 :
35452 : #include <string.h>
35453 0 : static CYTHON_INLINE Py_ssize_t __Pyx_ssize_strlen(const char *s) {
35454 0 : size_t len = strlen(s);
35455 0 : if (unlikely(len > (size_t) PY_SSIZE_T_MAX)) {
35456 : PyErr_SetString(PyExc_OverflowError, "byte string is too long");
35457 : return -1;
35458 : }
35459 : return (Py_ssize_t) len;
35460 : }
35461 : static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
35462 : Py_ssize_t len = __Pyx_ssize_strlen(c_str);
35463 : if (unlikely(len < 0)) return NULL;
35464 : return __Pyx_PyUnicode_FromStringAndSize(c_str, len);
35465 : }
35466 : static CYTHON_INLINE PyObject* __Pyx_PyByteArray_FromString(const char* c_str) {
35467 : Py_ssize_t len = __Pyx_ssize_strlen(c_str);
35468 : if (unlikely(len < 0)) return NULL;
35469 : return PyByteArray_FromStringAndSize(c_str, len);
35470 : }
35471 : static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) {
35472 : Py_ssize_t ignore;
35473 : return __Pyx_PyObject_AsStringAndSize(o, &ignore);
35474 : }
35475 : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
35476 : #if !CYTHON_PEP393_ENABLED
35477 : static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
35478 : char* defenc_c;
35479 : PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL);
35480 : if (!defenc) return NULL;
35481 : defenc_c = PyBytes_AS_STRING(defenc);
35482 : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
35483 : {
35484 : char* end = defenc_c + PyBytes_GET_SIZE(defenc);
35485 : char* c;
35486 : for (c = defenc_c; c < end; c++) {
35487 : if ((unsigned char) (*c) >= 128) {
35488 : PyUnicode_AsASCIIString(o);
35489 : return NULL;
35490 : }
35491 : }
35492 : }
35493 : #endif
35494 : *length = PyBytes_GET_SIZE(defenc);
35495 : return defenc_c;
35496 : }
35497 : #else
35498 : static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
35499 : if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL;
35500 : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
35501 : if (likely(PyUnicode_IS_ASCII(o))) {
35502 : *length = PyUnicode_GET_LENGTH(o);
35503 : return PyUnicode_AsUTF8(o);
35504 : } else {
35505 : PyUnicode_AsASCIIString(o);
35506 : return NULL;
35507 : }
35508 : #else
35509 : return PyUnicode_AsUTF8AndSize(o, length);
35510 : #endif
35511 : }
35512 : #endif
35513 : #endif
35514 : static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) {
35515 : #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
35516 : if (
35517 : #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
35518 : __Pyx_sys_getdefaultencoding_not_ascii &&
35519 : #endif
35520 : PyUnicode_Check(o)) {
35521 : return __Pyx_PyUnicode_AsStringAndSize(o, length);
35522 : } else
35523 : #endif
35524 : #if (!CYTHON_COMPILING_IN_PYPY && !CYTHON_COMPILING_IN_LIMITED_API) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE))
35525 : if (PyByteArray_Check(o)) {
35526 : *length = PyByteArray_GET_SIZE(o);
35527 : return PyByteArray_AS_STRING(o);
35528 : } else
35529 : #endif
35530 : {
35531 : char* result;
35532 : int r = PyBytes_AsStringAndSize(o, &result, length);
35533 : if (unlikely(r < 0)) {
35534 : return NULL;
35535 : } else {
35536 : return result;
35537 : }
35538 : }
35539 : }
35540 544 : static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) {
35541 544 : int is_true = x == Py_True;
35542 544 : if (is_true | (x == Py_False) | (x == Py_None)) return is_true;
35543 135 : else return PyObject_IsTrue(x);
35544 : }
35545 : static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) {
35546 : int retval;
35547 : if (unlikely(!x)) return -1;
35548 : retval = __Pyx_PyObject_IsTrue(x);
35549 : Py_DECREF(x);
35550 : return retval;
35551 : }
35552 0 : static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) {
35553 0 : __Pyx_TypeName result_type_name = __Pyx_PyType_GetName(Py_TYPE(result));
35554 : #if PY_MAJOR_VERSION >= 3
35555 0 : if (PyLong_Check(result)) {
35556 0 : if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
35557 : "__int__ returned non-int (type " __Pyx_FMT_TYPENAME "). "
35558 : "The ability to return an instance of a strict subclass of int is deprecated, "
35559 : "and may be removed in a future version of Python.",
35560 : result_type_name)) {
35561 0 : __Pyx_DECREF_TypeName(result_type_name);
35562 0 : Py_DECREF(result);
35563 0 : return NULL;
35564 : }
35565 : __Pyx_DECREF_TypeName(result_type_name);
35566 : return result;
35567 : }
35568 : #endif
35569 0 : PyErr_Format(PyExc_TypeError,
35570 : "__%.4s__ returned non-%.4s (type " __Pyx_FMT_TYPENAME ")",
35571 : type_name, type_name, result_type_name);
35572 0 : __Pyx_DECREF_TypeName(result_type_name);
35573 0 : Py_DECREF(result);
35574 : return NULL;
35575 : }
35576 0 : static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) {
35577 : #if CYTHON_USE_TYPE_SLOTS
35578 0 : PyNumberMethods *m;
35579 : #endif
35580 0 : const char *name = NULL;
35581 0 : PyObject *res = NULL;
35582 : #if PY_MAJOR_VERSION < 3
35583 : if (likely(PyInt_Check(x) || PyLong_Check(x)))
35584 : #else
35585 0 : if (likely(PyLong_Check(x)))
35586 : #endif
35587 0 : return __Pyx_NewRef(x);
35588 : #if CYTHON_USE_TYPE_SLOTS
35589 0 : m = Py_TYPE(x)->tp_as_number;
35590 : #if PY_MAJOR_VERSION < 3
35591 : if (m && m->nb_int) {
35592 : name = "int";
35593 : res = m->nb_int(x);
35594 : }
35595 : else if (m && m->nb_long) {
35596 : name = "long";
35597 : res = m->nb_long(x);
35598 : }
35599 : #else
35600 0 : if (likely(m && m->nb_int)) {
35601 0 : name = "int";
35602 0 : res = m->nb_int(x);
35603 : }
35604 : #endif
35605 : #else
35606 : if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) {
35607 : res = PyNumber_Int(x);
35608 : }
35609 : #endif
35610 0 : if (likely(res)) {
35611 : #if PY_MAJOR_VERSION < 3
35612 : if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) {
35613 : #else
35614 0 : if (unlikely(!PyLong_CheckExact(res))) {
35615 : #endif
35616 0 : return __Pyx_PyNumber_IntOrLongWrongResultType(res, name);
35617 : }
35618 : }
35619 0 : else if (!PyErr_Occurred()) {
35620 0 : PyErr_SetString(PyExc_TypeError,
35621 : "an integer is required");
35622 : }
35623 : return res;
35624 : }
35625 274 : static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) {
35626 274 : Py_ssize_t ival;
35627 274 : PyObject *x;
35628 : #if PY_MAJOR_VERSION < 3
35629 : if (likely(PyInt_CheckExact(b))) {
35630 : if (sizeof(Py_ssize_t) >= sizeof(long))
35631 : return PyInt_AS_LONG(b);
35632 : else
35633 : return PyInt_AsSsize_t(b);
35634 : }
35635 : #endif
35636 274 : if (likely(PyLong_CheckExact(b))) {
35637 : #if CYTHON_USE_PYLONG_INTERNALS
35638 274 : if (likely(__Pyx_PyLong_IsCompact(b))) {
35639 274 : return __Pyx_PyLong_CompactValue(b);
35640 : } else {
35641 0 : const digit* digits = __Pyx_PyLong_Digits(b);
35642 0 : const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
35643 0 : switch (size) {
35644 : case 2:
35645 0 : if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
35646 0 : return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35647 : }
35648 : break;
35649 : case -2:
35650 0 : if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) {
35651 0 : return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35652 : }
35653 : break;
35654 : case 3:
35655 : if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
35656 : return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35657 : }
35658 : break;
35659 : case -3:
35660 : if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) {
35661 : return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35662 : }
35663 : break;
35664 : case 4:
35665 : if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
35666 : return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35667 : }
35668 : break;
35669 : case -4:
35670 : if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) {
35671 : return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]));
35672 : }
35673 : break;
35674 : }
35675 : }
35676 : #endif
35677 0 : return PyLong_AsSsize_t(b);
35678 : }
35679 0 : x = PyNumber_Index(b);
35680 0 : if (!x) return -1;
35681 0 : ival = PyInt_AsSsize_t(x);
35682 0 : Py_DECREF(x);
35683 : return ival;
35684 : }
35685 : static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) {
35686 : if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) {
35687 : return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o);
35688 : #if PY_MAJOR_VERSION < 3
35689 : } else if (likely(PyInt_CheckExact(o))) {
35690 : return PyInt_AS_LONG(o);
35691 : #endif
35692 : } else {
35693 : Py_ssize_t ival;
35694 : PyObject *x;
35695 : x = PyNumber_Index(o);
35696 : if (!x) return -1;
35697 : ival = PyInt_AsLong(x);
35698 : Py_DECREF(x);
35699 : return ival;
35700 : }
35701 : }
35702 408 : static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) {
35703 408 : return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False);
35704 : }
35705 : static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) {
35706 : return PyInt_FromSize_t(ival);
35707 : }
35708 :
35709 :
35710 : /* #### Code section: utility_code_pragmas_end ### */
35711 : #ifdef _MSC_VER
35712 : #pragma warning( pop )
35713 : #endif
35714 :
35715 :
35716 :
35717 : /* #### Code section: end ### */
35718 : #endif /* Py_PYTHON_H */
|